总结:
数据库连接常用的函数:
$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);点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号