fetchAll()-真的有必要吗?

时间:2018-09-13 18:50:53

标签: pdo 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的新手,我看不到两个示例之间的区别。

1 个答案:

答案 0 :(得分:1)

这取决于您要如何处理结果。

您从任何一个中获得的实际数据结构完全不同,但是您可能会问这个问题,因为两者都可以使用foreach遍历结果。

但是fetchAll()返回一个纯PHP数组,而query返回一个带有隐藏内部结构的PHP对象。您可以(例如)调用json_encode中的两个。

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