轻松掌握MySQL操作:使用这10个PHP数据库函数
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 数据库的操作,并提高数据库和应用程序的性能。
