PHP 与数据库的交互:全面指南93


作为一名 PHP 开发人员,掌握与数据库交互是至关重要的。PHP 提供了强大的函数和类,使与 MySQL、PostgreSQL、Oracle 和其他流行的数据库系统进行通信变得容易。

在本文中,我们将深入探讨 PHP 与数据库交互的方方面面。我们将涵盖基础知识,例如连接到数据库、执行查询和获取结果,以及更高级的技术,例如使用准备好的语句和事务。

建立数据库连接

与数据库交互的第一步是建立连接。PHP 提供了 mysqli 和 PDO 两个主要的扩展来处理数据库连接。mysqli 扩展与 MySQL 数据库一起使用,而 PDO 提供了一个统一的接口来连接到广泛的数据库系统。```php
// 使用 mysqli 连接到 MySQL 数据库
$mysqli = new mysqli("localhost", "root", "password", "database");
// 使用 PDO 连接到 PostgreSQL 数据库
$pdo = new PDO("pgsql:host=localhost;dbname=database", "root", "password");
```

执行查询

一旦建立了连接,就可以使用 mysqli_query() 或 PDO::query() 方法执行查询。这些方法将 SQL 查询作为参数,并返回一个结果集,包含查询返回的行。```php
// 使用 mysqli 执行查询
$result = $mysqli->query("SELECT * FROM users");
// 使用 PDO 执行查询
$result = $pdo->query("SELECT * FROM users");
```

获取结果

执行查询后,可以使用 mysqli_fetch_assoc() 或 PDOStatement::fetch() 方法获取结果。这些方法将结果集中的当前行作为关联数组返回,其中列名用作键。```php
// 使用 mysqli 获取结果
while ($row = $result->fetch_assoc()) {
echo $row["name"] . " " . $row["email"] . "
";
}
// 使用 PDO 获取结果
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo $row["name"] . " " . $row["email"] . "
";
}
```

插入、更新和删除数据

除了执行查询,还可以使用 PHP 向数据库中插入、更新和删除数据。为此,可以使用 mysqli_query() 或 PDO::prepare() 和 PDOStatement::execute() 方法。```php
// 使用 mysqli 插入数据
$mysqli->query("INSERT INTO users (name, email) VALUES ('John Doe', 'john@')");
// 使用 PDO 插入数据
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute(["John Doe", "john@"]);
// 使用 mysqli 更新数据
$mysqli->query("UPDATE users SET name = 'Jane Doe' WHERE id = 1");
// 使用 PDO 更新数据
$stmt = $pdo->prepare("UPDATE users SET name = ? WHERE id = ?");
$stmt->execute(["Jane Doe", 1]);
// 使用 mysqli 删除数据
$mysqli->query("DELETE FROM users WHERE id = 1");
// 使用 PDO 删除数据
$stmt = $pdo->prepare("DELETE FROM users WHERE id = ?");
$stmt->execute([1]);
```

使用准备好的语句

准备好的语句是一种防止 SQL 注入攻击的更安全的方式。准备好的语句将 SQL 查询编译为一个预编译的语句,然后可以使用它多次执行,同时用不同的值替换参数。```php
// 使用 PDO 准备语句
$stmt = $pdo->prepare("SELECT * FROM users WHERE name = ?");
$stmt->execute(["John Doe"]);
```

使用事务

事务是一组操作,它们作为单个单元执行。这意味着要么所有操作都成功,要么所有操作都不成功。事务对于确保数据的一致性非常有用。```php
// 使用 PDO 开始事务
$pdo->beginTransaction();
// 执行查询
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute(["John Doe", "john@"]);
// 提交事务
$pdo->commit();
```

本文提供了有关 PHP 与数据库交互的全面概述。我们涵盖了基础知识,例如连接到数据库、执行查询和获取结果,以及更高级的技术,例如使用准备好的语句和事务。掌握这些技术对于 PHP 开发人员来说至关重要,他们需要与数据库进行交互。

2024-12-08


上一篇:使用 PHP 获取视频播放进度

下一篇:PHP 字符串处理函数大全