PHP 操作数据库的终极指南155



PHP是一种强大的服务器端脚本语言,广泛应用于网站和Web应用程序的开发中。在PHP中,与数据库交互是至关重要的,因为它允许应用程序管理和操作存储在数据库中的数据。

连接到数据库

在PHP中连接到数据库需要使用MySQLi扩展或PDO(PHP数据对象)。
// 使用MySQLi扩展
$mysqli = new mysqli("localhost", "username", "password", "database");
// 使用PDO
$db = new PDO("mysql:host=localhost;dbname=database", "username", "password");

执行查询

一旦连接到数据库,就可以执行SQL查询来检索或操作数据。
// 检索数据
$result = $mysqli->query("SELECT * FROM users");
// 插入数据
$mysqli->query("INSERT INTO users (name, email) VALUES ('John Doe', 'john@')");

处理结果

查询执行后,需要处理结果集。MySQLi提供了`fetch_all()`方法,而PDO提供了遍历结果的迭代器。
// 使用MySQLi
$users = $result->fetch_all(MYSQLI_ASSOC);
// 使用PDO
foreach ($result as $row) {
echo $row['name'] . ' - ' . $row['email'] . '
';
}

参数化语句

参数化语句是防止SQL注入攻击的重要安全措施。使用参数化语句,查询中的值会作为参数传递,而不是直接嵌入到查询字符串中。
// 使用MySQLi
$stmt = $mysqli->prepare("SELECT * FROM users WHERE name = ?");
$stmt->bind_param("s", $name);
$stmt->execute();
// 使用PDO
$stmt = $db->prepare("SELECT * FROM users WHERE name = :name");
$stmt->bindParam(":name", $name);
$stmt->execute();

事务

事务是一组必须全部成功或全部失败的数据库操作。在PHP中,可以通过使用`begin_transaction()`和`commit()`方法或PDO的`beginTransaction()`和`commit()`方法来管理事务。
// 开始事务
$mysqli->begin_transaction();
// 执行查询
$mysqli->query("UPDATE users SET balance = balance + 100 WHERE id = 1");
// 提交事务
$mysqli->commit();

错误处理

在与数据库交互时,错误处理至关重要。MySQLi和PDO都提供了处理错误的方法。
// MySQLi
if ($mysqli->error) {
echo "Error: " . $mysqli->error;
}
// PDO
try {
// 执行查询
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}

OOP数据库操作类

为了简化与数据库的交互,可以使用对象面向编程(OOP)数据库操作类。
class Database {
private $mysqli;
public function __construct($host, $username, $password, $database) {
$this->mysqli = new mysqli($host, $username, $password, $database);
}
// 执行查询
public function query($sql) {
return $this->mysqli->query($sql);
}
// 处理结果
public function fetch_all($resultType) {
return $this->mysqli->fetch_all($resultType);
}
}


PHP操作数据库的功能强大,通过理解如何连接到数据库、执行查询、处理结果、使用参数化语句、管理事务和处理错误,可以轻松管理和操作数据库中的数据。OOP数据库操作类进一步简化了这一过程,提供了更优雅和可维护的解决方案。

2024-10-31


上一篇:PHP 字符串赋值:详尽指南

下一篇:全方位 PHP 数据库备份指南