下面是关于PHP使用PDO获取结果集的方法的完整攻略。
一、什么是PDO
PDO(PHP Data Objects)是PHP内置的一个轻量级、可扩展的数据访问抽象层,提供了一种统一的方式来访问不同数据库系统的数据。相较于传统的MySQLi,PDO的优势在于它可以访问多种数据库系统,如MySQL、PostgreSQL、Oracle等。
二、PDO获取结果集的方法
PDO提供的方法获取结果集可以分为3种方式:
1. PDOStatement::fetch方法
此方法可以逐行获取查询结果,调用一次fetch方法获取一条数据:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '123456');
$stmt = $pdo->query("select * from user");
while ($result = $stmt->fetch()) {
echo $result['name'] . ' | ' . $result['age'] . ' | ' . $result['gender'] . "\n";
}
2. PDOStatement::fetchAll方法
此方法可以一次性获取查询结果中的所有数据:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '123456');
$stmt = $pdo->query("select * from user");
$results = $stmt->fetchAll();
foreach ($results as $result) {
echo $result['name'] . ' | ' . $result['age'] . ' | ' . $result['gender'] . "\n";
}
3. PDOStatement::rowCount方法
此方法可以获取查询结果的行数:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '123456');
$stmt = $pdo->query("select * from user");
echo '查询结果共 '.$stmt->rowCount().' 条数据';
以上三种方式可以根据实际需要灵活选取。
三、PDO中的预处理语句
PDO中的预处理语句可以提高SQL语句的执行效率,防止SQL注入攻击。
示例:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '123456');
$stmt = $pdo->prepare("select * from user where age > ?");
$stmt->execute([20]);
$results = $stmt->fetchAll();
foreach ($results as $result) {
echo $result['name'] . ' | ' . $result['age'] . ' | ' . $result['gender'] . "\n";
}
以上代码中,通过prepare方法准备了一个带有参数的SQL语句,然后执行execute方法传入参数20,获取查询结果。这种方式可以避免SQL注入攻击,也可以有效提高SQL语句的执行效率。
四、总结
通过上述内容的讲解可以看出,PDO提供了简单易用的方法来获取查询结果,并且可以通过预处理语句来提高SQL语句的执行效率,防止SQL注入攻击。在实际开发中,建议使用PDO来访问数据库,可以提高工作效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php使用PDO获取结果集的方法 - Python技术站