PHP&MySQL基础(一):创建数据库并通过PHP进行连接_长风沛雨的博客-CSDN博客
PHP&MySQL基础(二):通过PHP对MySQL进行增、删、改、查_长风沛雨的博客-CSDN博客
目录
一、连接MySQL,处理错误,统一字符编码
二、查询单条数据,把数据读取成一个关联数组
三、把数据读取成一个索引数组
四、把查询记录转为索引+关联数组
五、查询记录转为对象
在PHP处理MySQL的增删改查中,增、删、改返回的结果都是布尔值的true和false
但是查询返回的结果是一个【结果集】
这个返回的结果集是可以处理为关联数组、索引数组、对象的形式的
一、连接MySQL,处理错误,统一字符编码
<?php
//1、连接数据库
$link = new mysqli('localhost','root','123456','db_test','3306');
// var_dump($link);
//2、错误连接处理
if($link->connect_error){ # 判断如果link对象里面的异常不为空
switch($link->connect_error){
case 1045 : echo " 访问被拒绝,可能用户名或者密码错位";
break;
case 1049 : echo " 数据库名称错位";
break;
default:break;
}
}else{
//连接不存在问题,开始处理操作功能
//3、统一字符编码:使用连接对象自带的query方法执行sql语句,该sql是用来设置字符集编码
$link->query("SET NAMES utf8");
}
?>
在else分支中,对数据库进行一个查询
$sql = "SELECT * FROM tb_user WHERE id = 2";
$res = $link->query($sql);
var_dump($res);
这里是查询到了id为2的数据,返回的结果集显示:共一条数据,有6个字段
如果我们需要使用这些数据,就需要进行一个数据的转换
二、查询单条数据,把数据读取成一个关联数组
查询单条数据,读取成一个关联数组,指针会下移一条数据
这里需要使用到方法
mysqli_fetch_assoc()
把查询返回的对象传入方法,返回一个关联数组
//2.3 查询单条数据,读取成一个关联数组,指针下移一条记录
//mysqli_fetch_assoc()把查询返回的对象传入该方法,返回一个关联数组
$row = mysqli_fetch_assoc($res);
var_dump($row);
前面的SQL是查询了id为2的数据,我们可以把这一条数据,通过mysqli_fetch_assoc() 返回一个关联数组(键值对的方式)
PHP 关联数组 (w3schools.cn)https://www.w3schools.cn/php/php_arrays_associative.asp
如果要使用到这一条数据,可以
echo "用户名字:".$row['userName'].",用户密码:".$row['pwd'];
# 用户名字:CHANG,用户密码:654321
获取关联数组的索引值:数组名['键名']
三、把数据读取成一个索引数组
除了读取成一个关联数组以外,还可以读取成一个【索引数组】,指针同样会向下移动
把一条记录读取成一个索引数组,需要使用到方法:mysqli_fetch_row()
传入的参数同样是查询sql返回的结果集,也就是前面的$res
$rows= mysqli_fetch_row($res);
var_dump($rows);
同样是处理前面查询id为2的数据
索引数组的取值,就是:数组[索引值]
尝试输出一下
echo "用户名:".$rows[0].",密码是:".$rows[1];
# 用户名:2,密码是:CHANG
四、把查询记录转为索引+关联数组
把一条记录读取成一个既可以用索引方式访问,也可以用关联的方式访问的数组,指针下移一条记录(数组长度是记录的字段是的2倍)
使用方法:mysqli_fetch_array()
$rows2 = mysqli_fetch_array($res);
var_dump($rows2);
长度是记录字段的2倍(感觉这个了解一下就行)
五、查询记录转为对象
把一条记录读取成一个对象,指针下移一条数据
使用到方法:mysqli_fetch_object()
$rows = mysqli_fetch_object($res);
var_dump($rows);
PHP对象的取值:对象->属性
echo "用户名:".$rows->userName.",密码:".$rows->pwd;
# 用户名:CHANG,密码:654321
注意
指针是跟随结果集对象的,所有的fetch方法共用同个指针
也就是上面4个mysqli_fetch的方法,指针都会共用并下移了