📅  最后修改于: 2023-12-03 15:33:30.916000             🧑  作者: Mango
PHP PDO(PHP Data Objects)是 PHP 中的一个扩展模块,用于执行数据库操作。与 MySQLi 扩展不同,PDO 支持多种数据库,如 MySQL、PostgreSQL、SQLite 等,也支持多种数据库连接方式,如本地文件、网络套接字等。
其中,在 PHP PDO 中,执行查询并获取结果是最常见的操作之一。本文将从获取查询结果的角度,介绍如何在 PHP PDO 中执行查询,并获得返回的结果。
要在 PHP PDO 中执行查询并获取结果,通常需要以下步骤:
建立数据库连接:使用 PDO
类的构造函数,传递数据库连接参数,建立与数据库的连接。例如:
$dbh = new PDO('mysql:host=localhost;dbname=mydb', $user, $pass);
执行查询语句:使用 PDO
对象的 query()
或 prepare()
方法,执行查询语句。例如:
$stmt = $dbh->query('SELECT * FROM mytable');
或者:
$stmt = $dbh->prepare('SELECT * FROM mytable WHERE id = ?');
$stmt->execute([$id]);
其中,如果查询语句中包含占位符(如 ?
或 :name
),则需要使用 prepare()
方法,并在后续执行时,使用 execute()
方法,传递占位符对应的值。
获取查询结果:使用 PDOStatement
对象的 fetch()
方法,获取查询结果。例如:
while ($row = $stmt->fetch()) {
// 使用 $row 中的数据
}
在获取查询结果时,方法可传递参数,用于指定返回结果的格式。例如:
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// 获取关联数组格式的结果
}
或者:
$result = $stmt->fetchAll(PDO::FETCH_OBJ);
其中,常用的结果格式有 PDO::FETCH_ASSOC
(关联数组)、PDO::FETCH_NUM
(数字索引数组)、PDO::FETCH_OBJ
(对象)等。
以下是一个使用 PHP PDO 执行查询并获取结果的示例代码:
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=mydb', $user, $pass);
$stmt = $dbh->prepare('SELECT * FROM mytable WHERE id = ?');
$stmt->execute([$id]);
$results = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$results[] = $row;
}
print_r($results);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
PHP PDO 是一种强大的扩展模块,用于执行数据库操作。执行查询并获取结果是其中一个重要的操作,在实际的 PHP 应用中,也经常需要执行这一操作。通过本文的介绍,相信大家已经对 PHP PDO 中执行查询并获取结果有了一定的了解。