大家好,欢迎来到IT知识分享网。
概述
mysqli (MySQL Improved) 是 PHP 的一个扩展,用于实现对 MySQL 数据库的访问和操作。它提供了丰富的方法和属性,使得开发者能够以面向对象的方式进行数据库编程。
1.[创建连接]:使用mysqli类中构造函数(方法),实例化数据库连接对象
__construct():构造函数,mysqli类中内置方法,初始化mysqli对象时自动调用
参数:主机名(ip)、用户名、密码、数据库名(可选)、端口号(可选)、套接字(可选)
用途:创建一个新的mysqli类的对象,使用传递参数,尝试连接数据库
可以预先定义用到的变量,也可在实例化时,直接传入原始参数 $host = '127.0.0.1'; $username = 'root'; $password = 'root'; $conn = @new mysqli($host, $username, $password); @ :错误抑制符,如果连接失败,不显示失败提示的敏感信息
2.[检查连接]:使用if条件表达式判断,对象内connect_error属性的值,从而进行连接情况的判断
connect_error(): mysqli类,实例化成对象后的属性
属性返回值:出错时,它是一个描述错误的字符串,连接正常则为 NULL
使用if条件表达式进行属性返回值的判断
if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }else{ echo 'status:ok'; } 当数据库连接报错时,对象内connect_error属性值为描述报错内容的字符串。if判断为真,执行if语句 die 函数会输出括号内的错误信息,然后终止脚本的执行 数据库连接正常时,对象内connect_error属性值为NULL。if判断为假,执行else语句。 输出状态为ok
if条件表达式如何判断
if 语句,表达式的值会被自动转换为一个布尔值,其中:
真值(truthy):任何非零的、非空的、非假的值都会被转换为 true。
假值(falsy):值为 0、0.0、""(空字符串)、null、false、NaN(非数字)、一个空数组 array() 等,都会被转换为 false。
3.[执行SQL语句,操作数据库]:使用对象内query方法,进行sql语句的执行
query():对象内置方法,用于执行sql语句,并返回对应结果
所需参数:
将SQL语句以字符串的形式进行赋值的变量,也可以是原始数据
方法返回值:
query() 方法返回的结果取决于执行的 SQL 语句类型:
- 对于返回数据集的语句(如
SELECT,SHOW,DESCRIBE等),query()返回一个mysqli_result对象,这个对象包含了查询结果集,可以通过它来获取具体的数据行和列。 - 对于不返回数据集的语句(如
INSERT,UPDATE,DELETE,DROP等),query()返回true,表示语句执行成功。在这些情况下,可以使用$mysqli->affected_rows来获取影响的行数,或者使用$mysqli->insert_id来获取自增主键的值。 - 如果 SQL 语句执行失败,
query()返回false。此时,可以使用$mysqli->error来获取错误信息,或者使用$mysqli->errno来获取错误编号。
$sql = "SHOW DATABASES"; $result = $conn->query($sql); var_dump($result);
使用var_dump输出结果集的简略信息,包含[索引,字段数(列数),字段的长度信息,行数,类型]
object(mysqli_result)#2 (5)
{
[“current_field”]=> int(0)
[“field_count”]=> int(1)
[“lengths”]=> NULL
[“num_rows”]=> int(17)
[“type”]=> int(0)
}
失败返回:bool(false)
"current_field": 当前字段索引,对于SHOW DATABASES这类查询,它通常为0,因为查询结果不涉及字段索引。"field_count": 结果集中的字段数。对于SHOW DATABASES查询,这个值是1,因为查询只返回一个字段,即数据库的名称。"lengths": 一个数组,包含了结果集中每个字段的长度信息。对于SHOW DATABASES查询,这个属性通常是NULL,因为长度信息不适用。"num_rows": 结果集中的行数。在你的例子中,服务器上有17个数据库。"type": 结果集的类型,对于mysqli_result对象,这个值通常是0,表示这是标准的mysqli_result对象。
4.[判断查询情况并输出具体查询结果]:使用if判断结果集对象,并使用fetch方法进行while循环输出
$result:执行SQL语句后的结果集对象
fetch_assoc():结果集对象中包含的方法,用于输出结果集中每一行的内容,并将其与列名拼接成关联数组,列名为键,行具体内容为值
每次调用都输出结果集中下一行的内容,当结果集中没有可以输出的内容时,返回NULL
$row = $result->fetch_assoc()
var_dump($row);
输出结果集中第一行的内容: array(1) { [“Database”]=> string(18) “information_schema” }
if ($result) {
echo "Databases on the server:<br>";
// 输出每个数据库名称
while ($row = $result->fetch_assoc()) {
echo $row['Database'] . "<br>";
}
$conn->close()
} else {
var_dump($result);
echo'<br><hr>'; //php解释器中false会转换成0,而0在html中是不可见的
echo "Query failed: " . $conn->error;
}
循环开始:while 循环开始,调用 fetch_assoc() 尝试获取第一行数据。
获取数据:如果存在数据行,fetch_assoc() 返回一个关联数组,循环继续。
处理数据:在循环体内部,处理(通常是输出)当前行的数据。
循环继续:循环结束后再次调用 fetch_assoc() 尝试获取下一行数据。
结果集结束:当结果集中没有更多的行时,fetch_assoc() 返回 null,while 循环的条件不再满足,循环停止。
关闭结果集:在循环结束后,通常调用 $result->close() 来关闭结果集,释放资源。
使用if进行结果集对象的判断
如果sql语句执行成功,进行while循环
1.使用$row变量,接收结果集对象调用fetch_assoc方法,产生的关联数组。
2.输出具体的值,直到结果集中所有数据输出完成
3.结果集中所有数据输出完成,返回NULL传递给while循环,while循环关闭
4.调用mysqli对象中close方法关闭数据库连接
如果sql语句执行失败,结果集对象返回false
执行else语句,调用mysqli对象内error方法输出具体报错信息
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121276.html