欢迎访问宙启技术站
智能推送

数据库操作:PHP中的mysqli函数使用方法

发布时间:2023-06-05 07:10:21

MySQL是一种常见的关系型数据库管理系统,PHP与MySQL的结合使用是Web开发中非常常见的一种方式。PHP的mysqli函数是一套操作MySQL数据库的数据API,可提供对MySQL的各种行为的操作,如创建表、插入数据、更新数据、查询数据等等。本文将介绍mysqli函数的使用方法,包括连接数据库、执行SQL语句等。

一、连接数据库

在使用mysqli函数操作MySQL数据库时,首先要建立连接。建立连接的方式很多,例如使用PDO等。mysqli函数是面向对象的操作方式,所以连接数据库也是用面向对象的方式实现。连接数据库的方法是使用mysqli对象的构造函数mysqli(),提供连接MySQL服务器所需的参数,如主机名、用户名、密码等。示例代码如下:

$conn = new mysqli($host, $username, $password, $dbname);
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

这里使用new关键字创建一个mysqli对象,$host、$username、$password、$dbname分别是MySQL服务器的地址、登录用户名、登录密码和要连接的数据库名称。如果连接失败,则抛出连接失败的错误信息并终止程序运行。

二、执行SQL语句

连接成功后,就可以对MySQL数据库进行增删改查等操作了。mysqli函数提供了execute、query和multi_query三种执行SQL语句的方法。其中,

1.execute方法

execute方法是mysqli内所有执行语句的基础方法,支持执行任何SQL语句,如SELECT、INSERT、UPDATE、DELETE等。该方法返回一个mysqli_stmt对象,mysqli_stmt则表示查询结果集合。示例代码如下:

$sql = "SELECT * FROM users WHERE username='admin'";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    echo $row['id'] . ' ' . $row['username'] . ' ' . $row['password'] . "<br/>";
}

上面的代码使用了SELECT语句查询表users中用户名为admin的数据,把结果集合保存在$result中。然后,使用while循环遍历结果,输出每一行的数据。在这个例子里,使用了mysqli_stmt来操作prepare语句和PDO预处理机制,这样可以防止SQL注入攻击。

2.query方法

query方法可以执行单个SQL语句(SELECT、INSERT、UPDATE、DELETE等),返回一个mysqli_result对象。示例代码如下:

$sql = "SELECT * FROM users WHERE username='admin'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo $row['id'] . ' ' . $row['username'] . ' ' . $row['password'] . "<br/>";
    }
} else {
    echo "0 结果";
}

上面的代码示例中,使用了SELECT语句查询表users中用户名为admin的数据,把结果集合保存在$result中。如果有数据,则使用while循环遍历结果,输出每一行的数据;否则,输出“0结果”。

3.multi_query方法

multi_query方法可以执行多个SQL语句,将所有语句的结果集一起保存在mysqli_result对象中。示例代码如下:

$sql = "SELECT * FROM users;SELECT * FROM articles";
if ($conn->multi_query($sql)) {
    do {
        $result = $conn->store_result();
        if ($result) {
            while($row = $result->fetch_assoc()) {
                echo $row['id'] . ' ' . $row['username'] . ' ' . $row['password'] . "<br/>";
            }
        }
    } while ($conn->more_results() && $conn->next_result());
}

上面的代码示例中,使用了SELECT语句查询表users和articles中的数据,把两个结果集合保存在mysqli_result对象中(由于使用了mysqli_result对象,因此也可以使用while循环遍历结果集)。在多次查询后,使用next_result()方法在结果集中储存多个结果集,并用more_results()方法检查是否有更多的结果集。

三、关闭数据库连接

在结束mysqli函数的操作时,需要释放所占用的内存、关闭连接。这通常有两种方式:一种是通过调用mysqli_close()释放内存的方法关闭连接;另一种是在程序终止运行时自动关闭连接,这种方法并不会影响程序运行。

需要注意的是,即使在程序结束时自动关闭了连接, 还是在程序中打上关闭连接的代码。示例代码如下:

$conn->close();

在这个例子里,使用了mysqli对象的close()方法关闭数据库连接。执行这个方法后,PHP将不再管理连接,释放占用的内存,防止资源泄漏,提高系统的效率。

四、总结

mysqli函数是一套非常强大的MySQL数据库API,它提供对MySQL的各种常见行为的操作。在使用mysqli函数时,需要记住先建立连接,然后执行SQL语句,最后关闭连接。虽然mysqli函数让程序员操作MySQL数据库变得更加简单,但是在使用时也需要特别注意,例如处理SQL注入攻击等问题。