首页 > 解决方案 > fetchAll() - 真的有必要吗?

问题描述

示例 1°:

$stmt = 'SELECT * FROM table ORDER BY id DESC LIMIT 2';
$Dp = $conn->query($stmt)->fetchAll();

示例 2°:

$stmt = 'SELECT * FROM table ORDER BY id DESC LIMIT 2';
$Dp = $conn->query($stmt);

这两个例子有什么区别?我是 PDO 的新手,我看不出两个例子之间的区别。

标签: pdofetchall

解决方案


这有点取决于你想对结果做什么。

您从中获得的实际数据结构非常不同,但您可能会问这个问题,因为您可以使用foreach.

fetchAll()返回一个纯 PHP 数组,其中 asquery返回一个具有隐藏内部结构的 PHP 对象。您可以(例如)调用 json_encode 的两个之一。

通常直接循环 PDOStatement 可能会快一点,因为您没有创建(可能很大)中间数组。


推荐阅读