PHP数据库操作函数:10个关键技能
PHP 作为一门服务器端脚本语言,特别适合进行与数据库交互的操作。通过 PHP 数据库操作函数,我们可以实现方便快捷地获取、插入、更新等数据库操作,极大地提升了 Web 应用的效率。本文将详细介绍 10 个与 PHP 数据库操作息息相关的关键技能,以及如何利用它们实现高效的数据库操作。
1. 连接数据库
要开始进行对数据库的操作,首先需要与数据库建立连接。PHP 为我们提供了常用的数据库操作接口 mysqli 和 PDO,其中 mysqli 是针对 MySQL 数据库的接口,而 PDO 则是一个通用的接口,支持多种类型的数据库操作。下面是连接 MySQL 数据库的示例代码。
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检测连接
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
代码解析:这段代码使用 mysqli_connect() 函数连接 MySQL 数据库,其中 $servername 是数据库地址,$username 是数据库用户名,$password 是数据库密码,$dbname 是要连接的数据库名。如果连接失败,则使用 die() 函数输出错误信息,并停止代码运行。
2. 查询数据
查询是数据库操作的重点,要想使用 PHP 查询数据,需要先了解 SQL 语句。下面是一个简单的 SQL 查询示例。
SELECT * FROM users WHERE status = 1
代码解析:这个 SQL 查询语句使用 SELECT 关键词查询 users 表中 status 字段值为 1 的记录,* 号表示查询所有字段。接下来,可以将这个 SQL 查询语句与 PHP 数据库操作函数结合起来,实现查询数据的操作。
$sql = "SELECT * FROM users WHERE status = 1";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// 输出数据
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - 姓名: " . $row["name"]. " - 手机号码: " . $row["phone"]. "<br>";
}
} else {
echo "0 结果";
}
代码解析:这段代码使用 mysqli_query() 函数查询 MySQL 数据库,并将查询结果 $result 储存在变量中。然后使用 mysqli_num_rows() 函数获取查询结果行数,如果行数大于 0,则使用 mysqli_fetch_assoc() 函数获取每行数据;如果行数不大于 0,就输出“0 结果”。
3. 插入数据
插入数据是插入数据库记录的常用方法。下面是一个简单的 SQL 插入语句。
INSERT INTO users (name, phone, email, status) VALUES ('Tony', '13611112222', 'tony@gmail.com', 1)
代码解析:这个 SQL 插入语句使用 INSERT INTO 关键词将一条记录插入到 users 表中,分别设置了 name、phone、email、status 字段的值。
接下来,将这个 SQL 插入语句与 PHP 数据库操作函数结合起来,实现插入数据的操作。
$sql = "INSERT INTO users (name, phone, email, status) VALUES ('Tony', '13611112222', 'tony@gmail.com', 1)";
if (mysqli_query($conn, $sql)) {
echo "新记录插入成功";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
代码解析:这段代码使用 mysqli_query() 函数将 SQL 语句插入到 MySQL 数据库中,并判断是否插入成功。如果插入成功,则输出“新记录插入成功”;否则,输出错误信息。
4. 更新数据
更新数据是修改数据库记录的方法之一。下面是一个简单的 SQL 更新语句。
UPDATE users SET name='Tom' WHERE id=1
代码解析:这个 SQL 更新语句使用 UPDATE 关键词将 users 表中 id 为 1 的记录的 name 字段值更新为“Tom”。
接下来,将这个 SQL 更新语句与 PHP 数据库操作函数结合起来,实现更新数据的操作。
$sql = "UPDATE users SET name='Tom' WHERE id=1";
if (mysqli_query($conn, $sql)) {
echo "记录更新成功";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
代码解析:这段代码使用 mysqli_query() 函数更新 MySQL 数据库中的记录,如果更新成功,则输出“记录更新成功”;否则,输出错误信息。
5. 删除数据
删除数据是删除数据库记录的方法之一。下面是一个简单的 SQL 删除语句。
DELETE FROM users WHERE id=1
代码解析:这个 SQL 删除语句使用 DELETE FROM 关键词删除 users 表中 id 等于 1 的记录。
接下来,将这个 SQL 删除语句与 PHP 数据库操作函数结合起来,实现删除数据的操作。
$sql = "DELETE FROM users WHERE id=1";
if (mysqli_query($conn, $sql)) {
echo "记录删除成功";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
代码解析:这段代码使用 mysqli_query() 函数删除 MySQL 数据库中的记录,如果删除成功,则输出“记录删除成功”;否则,输出错误信息。
6. 预处理语句
使用预处理语句可以提高 SQL 语句的执行效率和安全性。预处理语句的思想是,将 SQL 语句分为两部分,即 SQL 模板和 SQL 参数,然后将 SQL 模板发送给数据库,最后将 SQL 参数传递给数据库,进行 SQL 执行操作。下面是一个使用 mysqli 预处理语句的例子。
$sql = "INSERT INTO users (name, phone, email, status) VALUES (?, ?, ?, ?)"; $stmt = mysqli_prepare($conn, $sql); mysqli_stmt_bind_param($stmt, "sssi", $name, $phone, $email, $status); $name = "Peter"; $phone = "13622223333"; $email = "peter@gmail.com"; $status = 1; mysqli_stmt_execute($stmt); echo "新记录插入成功";
代码解析:这段代码使用 mysqli_prepare() 函数创建一个预处理语句,然后使用 mysqli_stmt_bind_param() 函数绑定 SQL 参数。在传递 SQL 参数之前,先给变量赋值,然后使用 mysqli_stmt_execute() 函数执行 SQL 语句。
7. 事务
事务是指数据库管理系统执行的一系列操作,这些操作要么全部执行成功,要么全部执行失败。在 PHP 中,我们可以使用 mysqli 或 PDO 提供的事务方法来实现数据的操作。下面是一个使用 mysqli 实现事务的例子。
mysqli_autocommit($conn, false); // 禁用自动提交事务
$sql = "UPDATE users SET status = 0 WHERE id = 1";
mysqli_query($conn, $sql);
$sql = "INSERT INTO orders (user_id, product_id) VALUES (1, 1)";
mysqli_query($conn, $sql);
if(mysqli_commit($conn)) {
echo "事务提交成功";
} else {
mysqli_rollback($conn);
echo "事务回滚";
}
代码解析:将自动提交事务禁用并使用 SQL 语句更新 users 表中 id 为 1 的记录的 status 值,然后使用 SQL 语句向 orders 表中插入新的记录。如果事务提交成功,则输出“事务提交成功”;否则,执行事务回滚并输出“事务回滚”。
8. 数据库连接池
在高性能、高并发的 PHP 网络应用中,数据库连接数较多,每次请求都需建立/断开连接,不仅浪费时间,而且会导致数据库资源的消耗。因此,使用数据库连接池可以极大地提高
