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

轻松掌握MySQL操作:使用这10个PHP数据库函数

发布时间:2023-06-11 17:11:28

MySQL是一种广泛使用的关系型数据库管理系统,它使用结构化查询语言(SQL)来管理和访问数据。在PHP中,我们可以使用许多函数来连接MySQL数据库,执行查询,插入,更新和删除操作。在本文中,我们将介绍10个PHP与MySQL操作有关的主要函数,以帮助您更好地掌握MySQL的基础知识。

1. mysqli_connect() 函数

连接 MySQL 数据库的第一步是使用 mysqli_connect() 函数。此函数需要四个参数:主机名、用户名、密码和数据库名称。以下是示例代码:

$host = "localhost";
$user = "username";
$password = "password";
$dbname = "database";
$conn = mysqli_connect($host, $user, $password, $dbname);
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

以上代码将连接到名为“ database ”的数据库,如果连接失败则显示错误消息。

2. mysqli_query() 函数

一旦与MySQL建立了连接,您可以使用 mysqli_query() 函数来执行查询。它需要两个参数:连接和SQL查询的字符串表示。例如:

$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);

以上代码将执行一个查询,以从 users 表中检索所有行,并将结果存储在 $result 变量中。

3. mysqli_fetch_assoc() 函数

查询返回的结果集是一组行,可以使用 mysqli_fetch_assoc() 函数逐行检索它。此函数需要一个结果集作为参数,并返回一个关联数组,其中包含行中列名和值的键-值对。以下是示例代码:

while ($row = mysqli_fetch_assoc($result)) {
    echo "Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}

以上代码将输出每一行的 name 和 email 列。

4. mysqli_num_rows() 函数

如果您需要知道结果集中有多少行,请使用 mysqli_num_rows() 函数。此函数需要一个结果集作为参数并返回它的行数。例如:

$num_rows = mysqli_num_rows($result);
echo "Number of rows : " . $num_rows;

以上代码将返回 users 表中的行数。

5. mysqli_insert_id() 函数

如果您需要获取刚插入数据的自增 ID,请使用 mysqli_insert_id() 函数。此函数需要连接作为参数,并返回最后插入行的 ID。例如:

$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'johndoe@example.com')";
mysqli_query($conn, $sql);
echo "Last inserted ID is: " . mysqli_insert_id($conn);

以上代码将插入一个新行并显示其自增ID。

6. mysqli_error() 函数

如果您执行的查询出现错误,则可以使用 mysqli_error() 函数来获取MySQL报告的错误消息。此函数需要连接作为参数,并返回最后一个错误消息。例如:

$sql = "SELECT * FROM non_existing_table";
$result = mysqli_query($conn, $sql);
if (!$result) {
    echo "Error: " . mysqli_error($conn);
}

以上代码将尝试从不存在的表中检索数据,并显示报告的错误消息。

7. mysqli_affected_rows() 函数

如果您需要知道最后一次操作(插入,更新或删除)影响了多少行,请使用 mysqli_affected_rows() 函数。此函数需要连接作为参数,并返回受影响的行数。例如:

$sql = "UPDATE users SET email='newemail@example.com' WHERE name='John Doe'";
mysqli_query($conn, $sql);
echo "Affected rows: " . mysqli_affected_rows($conn);

以上代码将更新 John Doe 行的 email 列,并显示受影响的行数。

8. mysqli_real_escape_string() 函数

处理字符串数据时,必须避免 SQL 注入攻击。 mysqli_real_escape_string() 函数可以帮助您转义字符串中的特殊字符以防止 SQL 注入攻击。例如:

$name = mysqli_real_escape_string($conn, $_POST['name']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
mysqli_query($conn, $sql);

以上代码将转义用户输入中可能的特殊字符,以插入新行到 users 表中。

9. mysqli_close() 函数

一旦完成了与 MySQL 数据库的交互,应使用 mysqli_close() 函数来关闭连接。例如:

mysqli_close($conn);

以上代码将关闭与 MySQL 数据库的连接。

10. Prepared Statements

为避免 SQL 注入攻击,您也可以使用 mysqli 模块的预处理语句功能。预处理语句可以帮助您将输入参数分离出来,使其成为单独的变量。例如,以下代码使用 mysqli_prepare() 函数创建一个预处理语句,然后绑定变量,执行语句并关闭预处理语句:

$stmt = mysqli_prepare($conn, "INSERT INTO users (name, email) VALUES (?, ?)");
mysqli_stmt_bind_param($stmt, "ss", $name, $email);
$name = "John Doe";
$email = "johndoe@example.com";
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);

以上代码将使用预处理语句将变量 $name 和 $email 插入到 users 表中,以避免 SQL 注入攻击。

在本文中,我们介绍了与 MySQL 数据库交互的10个主要 PHP 函数。学习这些函数,可以简化 MySQL 数据库的操作,并提高数据库和应用程序的性能。