一、mysqli_query返回值
mysqli_query()函数是PHP提供的一种连接MySQL数据库并执行SQL语句的方法。当执行成功时,返回值为一个结果集,可以通过fetch_object()、fetch_array()、fetch_assoc()等方法获取其中的数据。
<?php //连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); //执行查询语句 $result = mysqli_query($conn, "SELECT * FROM users"); //遍历结果集 while($row = mysqli_fetch_assoc($result)) { //处理数据 } //关闭连接 mysqli_close($conn); ?>
当执行失败时,mysqli_query()会返回false,可以通过mysqli_error()函数获取具体的错误信息。
<?php $conn = mysqli_connect("localhost", "username", "password", "database"); //SQL语法错误 $result = mysqli_query($conn, "SELECT name, age FROM users WHERE"); if(!$result) { echo mysqli_error($conn); } mysqli_close($conn); ?>
二、mysql query函数
mysqli_query()是mysqli扩展中的一个方法,与之相对应的是mysql_query()函数,是PHP旧版本中的一种连接MySQL数据库并执行SQL语句的方法。
与mysqli_query()不同的是,mysql_query()函数只能够连接MySQL 4.1.x及以下版本的数据库,并且执行失败时会直接输出错误信息,而不是返回false。
<?php $conn = mysql_connect("localhost", "username", "password"); mysql_select_db("database", $conn); $result = mysql_query("SELECT * FROM users"); while($row = mysql_fetch_assoc($result)) { //处理数据 } mysql_close($conn); ?>
三、php mysql query
mysqli_query()函数不仅可以连接MySQL数据库并执行SQL语句,还可以执行一些针对数据库的操作,如获取数据库的版本号、获取最近一次插入的自增ID等。
要获取数据库的版本号,可以使用以下代码:
<?php $conn = mysqli_connect("localhost", "username", "password"); echo mysqli_get_server_info($conn); mysqli_close($conn); ?>
要获取最近一次插入的自增ID,可以使用mysqli_insert_id()函数,该函数必须在执行插入操作之后立即调用,否则会返回0。
<?php $conn = mysqli_connect("localhost", "username", "password", "database"); mysqli_query($conn, "INSERT INTO users(name, age) VALUES('Tom', 18)"); echo mysqli_insert_id($conn); mysqli_close($conn); ?>
四、mysqli查询
mysqli_query()函数还可以执行其他类型的SQL语句,如更新、插入和删除。要执行更新语句,可以使用以下代码:
<?php $conn = mysqli_connect("localhost", "username", "password", "database"); mysqli_query($conn, "UPDATE users SET age = 20 WHERE name = 'Tom'"); mysqli_close($conn); ?>
要执行插入和删除语句,可以使用以下代码:
<?php $conn = mysqli_connect("localhost", "username", "password", "database"); mysqli_query($conn, "INSERT INTO users(name, age) VALUES('Tom', 18)"); mysqli_query($conn, "DELETE FROM users WHERE name = 'Tom'"); mysqli_close($conn); ?>
五、query函数用法
mysqli_query()函数还可以与其他函数结合使用,如mysqli_num_rows()函数可以获取结果集中的行数。
<?php $conn = mysqli_connect("localhost", "username", "password", "database"); $result = mysqli_query($conn, "SELECT * FROM users"); echo mysqli_num_rows($result); mysqli_close($conn); ?>
mysqli_affected_rows()函数可以获取插入、更新和删除操作影响的行数。
<?php $conn = mysqli_connect("localhost", "username", "password", "database"); mysqli_query($conn, "UPDATE users SET age = 20 WHERE name = 'Tom'"); echo mysqli_affected_rows($conn); mysqli_close($conn); ?>
mysqli_field_count()函数可以获取结果集中的列数。
<?php $conn = mysqli_connect("localhost", "username", "password", "database"); $result = mysqli_query($conn, "SELECT * FROM users"); echo mysqli_field_count($conn); mysqli_close($conn); ?>