您的位置:

mysqli_query()详解

一、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);
?>