fetchAll () - действительно необходимо? - PullRequest
0 голосов
/ 13 сентября 2018

Пример 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 голосов
/ 13 сентября 2018

Это зависит от того, что вы хотите сделать с результатом.

Фактические структуры данных, которые вы получаете, либо очень отличаются , но вы, вероятно, задаете вопрос, потому что с обоими вы можете просмотреть результат с помощью foreach.

Но fetchAll() возвращает чистый массив PHP, где query возвращает объект PHP со скрытыми внутренними объектами. Например, вы можете вызвать json_encode.

Обычно непосредственное зацикливание на PDOStatement может быть немного быстрее, поскольку вы не создаете (потенциально большой) промежуточный массив.

...