例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的新手,我看不出两个例子之间的区别。
这有点取决于你想对结果做什么。
你从中得到的实际数据结构是非常不同的,但你可能会问这个问题,因为你可以用foreach
循环结果。
但fetchAll()
返回一个纯PHP数组,其中query
返回一个隐藏内部的PHP对象。你可以(例如)调用json_encode的两个中的一个。
通常直接在PDOStatement上循环可能会快一些,因为您没有创建(可能很大的)中间数组。