📅  最后修改于: 2023-12-03 14:45:07.091000             🧑  作者: Mango
在 PHP 中,使用 PDO(PHP 数据对象)扩展库来连接和操作数据库非常方便。它提供了一种抽象的方式来访问不同类型的数据库,包括 MySQL、SQLite、Oracle 等。
要使用 PDO 连接到数据库,需要提供数据库的 DSN(数据源名称)、用户名和密码等信息。以下是连接到 MySQL 数据库的示例代码:
// 数据库信息
$dsn = 'mysql:host=localhost;dbname=example';
$username = 'root';
$password = '';
// 连接数据库
try {
$pdo = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
在上面的代码中,我们使用 $dsn
变量来设置 MySQL 连接参数。其中,host
表示数据库主机名或 IP 地址,dbname
表示要连接的数据库名称。如果需要,还可以指定端口号和字符集等参数。
然后,我们使用 PDO
类的构造函数来创建一个 PDO 对象。如果连接失败,则会抛出 PDOException
异常,我们可以在 catch
块中处理该异常。
PDO 提供了一系列方法来执行 SQL 查询并返回结果。以下是一个查询示例,我们使用 query()
方法来执行 SELECT SQL,然后使用 fetchAll()
方法将结果集以数组的形式返回:
// 查询数据
$stmt = $pdo->query('SELECT * FROM users');
$users = $stmt->fetchAll();
// 遍历结果
foreach ($users as $user) {
echo $user['id'] . ': ' . $user['name'] . '<br>';
}
在上面的代码中,我们使用 $stmt
变量来保存查询语句的执行结果。然后,我们将结果集转换为 PHP 数组,通过 foreach 循环遍历其中的每条记录并输出。
要插入一条新数据,可以使用 PDO 的 prepare()
方法和 execute()
方法来执行 INSERT SQL。以下是一个插入示例:
// 插入数据
$stmt = $pdo->prepare('INSERT INTO users (name, age) VALUES (:name, :age)');
$stmt->execute(array(
':name' => 'John',
':age' => 30
));
// 获取新数据的 ID
$id = $pdo->lastInsertId();
echo 'New user added with ID ' . $id;
在上面的代码中,我们先使用 prepare()
方法来准备 SQL 语句,其中的 :name
和 :age
相当于参数占位符。然后,使用 execute()
方法并传入一个关联数组来执行该语句。
在执行 INSERT SQL 后,我们可以使用 lastInsertId()
方法获取新数据在数据库中的 ID。
要更新一条数据,可以使用 PDO 的 prepare()
方法和 execute()
方法来执行 UPDATE SQL。以下是一个更新示例:
// 更新数据
$stmt = $pdo->prepare('UPDATE users SET age = :age WHERE id = :id');
$stmt->execute(array(
':id' => 1,
':age' => 40
));
// 获取受影响行数
$count = $stmt->rowCount();
echo $count . ' rows updated';
在上面的代码中,我们先使用 prepare()
方法来准备 SQL 语句,并使用 execute()
方法传入一个关联数组来执行该语句。其中,:id
和 :age
分别表示要更新的数据的 ID 和新的年龄。
在执行 UPDATE SQL 后,我们可以使用 rowCount()
方法获取受影响的行数。
要删除一条数据,可以使用 PDO 的 prepare()
方法和 execute()
方法来执行 DELETE SQL。以下是一个删除示例:
// 删除数据
$stmt = $pdo->prepare('DELETE FROM users WHERE id = :id');
$stmt->execute(array(
':id' => 1
));
// 获取受影响行数
$count = $stmt->rowCount();
echo $count . ' rows deleted';
在上面的代码中,我们先使用 prepare()
方法来准备 SQL 语句,并使用 execute()
方法传入一个关联数组来执行该语句。其中,:id
表示要删除的数据的 ID。
在执行 DELETE SQL 后,我们可以使用 rowCount()
方法获取受影响的行数。
以上就是 PDO 示例的介绍,使用 PDO 连接、查询、插入、更新和删除数据库非常方便。如果您想了解更多关于 PDO 的用法,请查看官方文档。