📜  mysqli_connect 使用准备语句 - SQL (1)

📅  最后修改于: 2023-12-03 15:17:48.956000             🧑  作者: Mango

使用 mysqli_connect 和准备语句(SQL)的介绍

本文将介绍如何使用 mysqli_connect 函数和准备语句(SQL)来连接 MySQL 数据库并执行 SQL 查询。准备语句是一种预处理 SQL 查询的方式,它可以避免 SQL 注入攻击,提高查询性能,同时还可以实现代码复用。最后,我们将给出使用 mysqli_connect 和准备语句(SQL)的示例代码。

mysqli_connect 函数介绍

mysqli_connect 是 PHP 中连接 MySQL 数据库的内置函数,其语法如下:

mysqli mysqli_connect(string $host, string $username, string $password, string $dbname, int $port = 3306, string $socket = '')

其中,$host 表示 MySQL 数据库服务器的主机名或 IP 地址,$username 表示 MySQL 数据库用户名,$password 表示 MySQL 数据库密码,$dbname 表示要连接的 MySQL 数据库名称,$port 表示 MySQL 数据库服务器监听的端口号(可选,默认为 3306),$socket 表示 MySQL 数据库服务器的 UNIX 套接字(可选,默认为空)。

mysqli_connect 函数返回一个 mysqli 对象,该对象包含了与 MySQL 数据库的连接,并可以用来执行 SQL 查询。

准备语句(SQL)介绍

准备语句是一种预处理 SQL 查询的方式,它可以避免 SQL 注入攻击以及提高查询性能。准备语句的一般流程如下:

  1. 准备 SQL 查询语句,其中可能包含未知的参数,使用占位符 ? 代替。

  2. 创建一个 mysqli_stmt 对象并绑定 SQL 查询语句。

  3. 绑定 SQL 查询语句中的参数和类型。

  4. 执行 SQL 查询,并传递参数值。

  5. 获取查询结果。

使用准备语句的好处是可以将 SQL 查询语句和参数绑定在一起,这样可以避免 SQL 注入攻击,提高查询性能,同时还可以实现代码复用。

使用 mysqli_connect 和准备语句(SQL)的示例代码

以下示例演示了如何使用 mysqli_connect 和准备语句(SQL)来连接 MySQL 数据库并执行 SQL 查询。

<?php
// 连接 MySQL 数据库
$conn = mysqli_connect('localhost', 'root', 'password', 'testdb');

// 准备 SQL 查询语句
$sql = "SELECT * FROM users WHERE age > ?";
 
// 创建 mysqli_stmt 对象并绑定 SQL 查询语句
$stmt = mysqli_stmt_init($conn);
mysqli_stmt_prepare($stmt, $sql);

// 绑定 SQL 查询语句中的参数和类型
$age = 18;
mysqli_stmt_bind_param($stmt, 'i', $age);

// 执行 SQL 查询,并传递参数值
mysqli_stmt_execute($stmt);

// 获取查询结果
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_assoc($result)) {
    echo "id: {$row['id']}, name: {$row['name']}, age: {$row['age']}\n";
}

// 关闭 mysqli_stmt 对象和 MySQL 数据库连接
mysqli_stmt_close($stmt);
mysqli_close($conn);
?>

在上述示例代码中,我们首先使用 mysqli_connect 函数连接 MySQL 数据库,然后准备了一个 SQL 查询语句"SELECT * FROM users WHERE age > ?",该查询语句中的参数使用占位符 ? 代替。接着,我们创建了一个 mysqli_stmt 对象,并使用 mysqli_stmt_prepare 函数绑定了 SQL 查询语句。然后,我们使用 mysqli_stmt_bind_param 函数绑定了 SQL 查询语句中的参数和类型,并执行了 SQL 查询。最后,我们通过 mysqli_stmt_get_result 函数获取查询结果,并使用 mysqli_fetch_assoc 函数遍历结果集打印出每一行数据。最后,我们还需要关闭 mysqli_stmt 对象和 MySQL 数据库连接。

总结

本文介绍了如何使用 mysqli_connect 函数和准备语句(SQL)来连接 MySQL 数据库并执行 SQL 查询。准备语句是一种预处理 SQL 查询的方式,它可以避免 SQL 注入攻击,提高查询性能,同时还可以实现代码复用。我们提供了示例代码作为参考,希望对读者有所帮助。