前言:
PHP历史上提供了一套函数,用于访问MySQL服务器,形如:
mysql_connect()、mysql_query()、mysql_close()...
后来又提供了一套改进版/增强版(Improved)函数,形如:
mysqli_connect()、mysqli_query()、mysqli_close()...
使用mysqli函数库访问数据库服务器的步骤:
提示:此过程与命令行工具(mysql.exe)访问数据库服务器是一样的
(1) 连接到数据库服务器
$conn = mysqli_connect(…);
(2) 向数据库服务器发送SQL命令(字符串)
$sql = "增删改查…";
$result=mysqli_query($conn,$sql);
(3) 查看服务器执行的结果
if ($result===false){}
else{}
(4) 断开到数据库服务器的连接(可以省略)
Mysql_close($conn);
示例://使用PHP访问mysql服务器,向部门表中添加一行新的记录(数据库创建部门表如下)
////1.连接到mysql服务器
$conn= mysqli_connect('127.0.0.1','root',"",'danei',3306);
# var_dump($conn); //测试查看一下连接是否成功
////2.向mysqli服务器提交SQL命令
$sql = "INSERT INTO dept VALUES(50,'TESTING')";
$result=mysqli_query($conn,$sql);
////3.查看执行结果
if($result===false)或者if(!result){
echo "SQL语句执行失败!请检查语法:$sql";
}else{
echo "新的部门信息已经保存到数据库!";
}
1.基于单表的CRUD
Create Retrieve Update Delete:增删改查
1_user_register.php 难点
2_user_delete.php 简单
3_user_update.php 简单
4_user_login.php 难点
5_user_list.php 难点
1. 客户端请求消息中的数据检验
@$n = $REQUEST['uname'];
If($n===null || $n===""){
Die("uname不能为空");
}
@运算符:用于屏蔽/压制当前行代码输出的默认错误消息
Die(“…”):终止的当前页面的执行,输出一个错误的消息
2. mysqli_query()函数的返回值类型
PHP解释器向mysql服务器提交一条SQL命令来执行:
$result = mysqli_query($conn,$sql);
返回值$result具体值要根据SQL语句类型:
DDL/DML:
执行失败:false 执行成功:true
DQL:
执行失败:false 执行成功:查询结果集的描述对象
DDL: CREATE DROP ALTER TRUNCATE
DML: INSERT DELETE UPDATE(增删改)
DQL: SELECT(查)
DCL: GRANT REVOKE
4.如何获取MySQL产生的自增编号
若mysqli_query($conn,$sql)中的$sql是一条INSERT语句,且该语句用到了自增编号,可以立即使用:
$id = mysqli_insert_id($conn) ;
获得刚刚由MySQL生成的自增编号。
5.php中的页面包含技术
1.php
$age=10;
2.php
require(1.php);
echo $age;
echo #age++;
6.如何获取DML语句影响的行数
只有DML(INSERT/DELETE/UPDATE)语句可以影响数据库中的数据行!
$count = mysqli_affected_rows( $conn );
获取连接上刚刚执行的DML语句实际影响的数据行数。
7.如何从查询结果集中读取数据
$result = mysqli_query($conn, "SELECT ....");
DQL执行失败返回false;执行成功返回“查询结果集的描述对象”——可以知道有几列几行的数据被查询到。
如何从查询结果集中抓取数据:
mysqli_fetch_row($result):抓取一行记录,如果有数据就返回一个索引数组,否则返回null
mysqli_fetch_assoc($result):抓取一行记录,如果有数据就返回一个关联数组,否则返回null
mysqli_fetch_all($result, MYSQLI_ASSOC):抓取所有记录行