总结:
数据库连接常用的函数:
$db = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME); //连接数据库
mysqli_connect_errno($db); //错误编号
mysqli_connect_error($db); //错误信息
mysqli_set_charset($db,DB_CHAR); //设置客户端默认字符编码集
数据库增删改查时常用的函数:
mysqli_query($db,$sql); //执行sql语句的函数
mysqli_errno($db); mysqli_error($db); //执行sql语句出错后的错误信息
mysqli_free_result($res); //释放结果集,仅针对查询操作
mysqli_affected_rows($db); //被影响的记录数
mysqli_insert_id($db); //新增主键的ID,执行新增操作时才会有
mysqli_num_rows($res); //结果集中的记录数
mysqli_fetch_array($res); //把结果集遍历到数组中,关联和索引都有
mysqli_fetch_array($res,MYSQL_ASSOC); //把结果集遍历到关联数组中
mysqli_fetch_array($res,MYSQL_NUM); //把结果集遍历到索引数组中
mysqli_multi_query($db,$sql); //执行多条sql语句的函数
$res = mysqli_store_result($db); //返回多个结果集中的最高一位
mysqli_more_results($db); //判断结果集中是否还有更多的结果子集
mysqli_next_result($db); //移动结果集指针
1.select:查询,读操作,返回的是结果集,可以想象成一张表
2.insert/update/delete:写操作,返回的是受影响的记录数量
注意:查询操作后要释放结果集
新增,更新,删除都是危险操作,更新和删除都要有where条件
数据库连接配置文件代码:
<?php //创建数据库连接 //1.准备好连接要用的所有参数 define('DB_HOST','127.0.0.1'); define('DB_USER','root'); define('DB_PASS','root'); define('DB_NAME','demo'); define('DB_CHAR','utf8');
点击 "运行实例" 按钮查看在线实例
数据库连接代码:
<?php //创建数据库连接 //1.引入配置文件 require 'mysqli_config.php'; //2.调用连接函数mysqli_connect();返回连接对象 $db = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME)or die('连接失败'.mysqli_connect_error($db)); //3.设置客户端默认字符编码集 mysqli_set_charset($db,DB_CHAR); //echo '<p>成功</p>';
点击 "运行实例" 按钮查看在线实例
新增操作代码:
<?php require 'mysqli_connect.php';//连接数据库 //IGNORE:如果添加的数据已经存在,就会忽略,不会重复添加,要生效必须要有唯一索引字段 $sql = "INSERT IGNORE student SET name='张无忌',course='php',grade=90;";//准备sql语句 if (mysqli_query($db,$sql)){ if (mysqli_affected_rows($db)>0){//判断被影响的记录数 echo '成功添加了'.mysqli_affected_rows($db).'条数据,新增记录的主键ID是:'.mysqli_insert_id($db); }else{ echo '没有记录被新增'; } }else{//出错 exit(mysqli_errno($db).':'.mysqli_error($db)); } //关闭数据库连接 mysqli_close($db);
点击 "运行实例" 按钮查看在线实例
更新操作代码:
<?php require 'mysqli_connect.php';//连接数据库 $sql = "UPDATE student SET grade=96 WHERE id=8;";//准备sql语句 if (mysqli_query($db,$sql)){ if (mysqli_affected_rows($db)>0){//判断被影响的记录数 echo '成功更新了'.mysqli_affected_rows($db).'条数据'; }else{ echo '没有记录被更新'; } }else{//出错 exit(mysqli_errno($db).':'.mysqli_error($db)); } //关闭数据库连接 mysqli_close($db);
点击 "运行实例" 按钮查看在线实例
删除操作代码:
<?php require 'mysqli_connect.php';//连接数据库 $sql = "DELETE FROM student WHERE id=8;";//准备sql语句 if (mysqli_query($db,$sql)){ if (mysqli_affected_rows($db)>0){//判断被影响的记录数 echo '成功删除了'.mysqli_affected_rows($db).'条数据'; }else{ echo '没有记录被删除'; } }else{//出错 exit(mysqli_errno($db).':'.mysqli_error($db)); } //关闭数据库连接 mysqli_close($db);
点击 "运行实例" 按钮查看在线实例
查询操作代码:
<?php require 'mysqli_connect.php';//连接数据库 $sql = "SELECT name,grade FROM student;";//准备sql语句 if ($res = mysqli_query($db,$sql)){ if (mysqli_num_rows($res)>0){//判断记录数 while($row = mysqli_fetch_array($res,MYSQLI_ASSOC)){ var_export($row);echo '<hr>'; } }else{ echo '没有查询到结果'; } }else{//出错 exit(mysqli_errno($db).':'.mysqli_error($db)); } //释放结果集 mysqli_free_result($res); //关闭数据库连接 mysqli_close($db);
点击 "运行实例" 按钮查看在线实例
多条sql语句执行代码:
<?php require 'mysqli_connect.php';//连接数据库 //按性别进行分组,查询男生和女生的篇平均分数 $sql = "SELECT sex,ROUND(AVG(grade),2) FROM student GROUP BY sex;";//准备多条sql语句 //查询成绩小于80分的学生 $sql.="SELECT name,grade FROM student WHERE grade<80;"; //查询年龄大于25岁的学生 $sql.="SELECT name,grade FROM student WHERE grade<80;"; if (mysqli_multi_query($db,$sql)){ //获取结果集中的最高一位结果子集,如果它存在,就进行遍历 while($res = mysqli_store_result($db)){ if (mysqli_num_rows($res)>0){ while($row = mysqli_fetch_array($res,MYSQLI_ASSOC)) { var_export($row);echo '<br>'; } mysqli_free_result($res); //释放当前结果子集 }else{ echo '当前结果子集中没有数据'; } if (mysqli_more_results($db)){ //判断当前数据库中是否还有更多的结果集 echo '<hr>'; mysqli_next_result($db); //下移指针 } } }else{//出错 exit(mysqli_errno($db).':'.mysqli_error($db)); } //关闭数据库连接 mysqli_close($db);
点击 "运行实例" 按钮查看在线实例