@Banan44
Full Stack

::query и ::fetchAll различия?

Какие различия между fetchAll и query в PDO
$dsn = "mysql:host=localhost; dbname=banan165_database; charset=UTF8";
$mysql = new PDO($dsn, "root", "");

$result = $mysql->query("SELECT * FROM users ORDER BY id DESC");

foreach ($result as $user) {
	echo '<b> ID пользователя: </b>'.$user['id'].'<br>';
	echo '<b> Login пользователя: </b>'.$user['login'].'<br>';
	echo '<b> Email пользователя: </b>'.$user['email'].'<br>';
	echo '<b> Password пользователя: </b>'.$user['password'].'<br> <br>';
}

Сделает тоже самое что и
$dsn = "mysql:host=localhost; dbname=banan165_database; charset=UTF8";
$mysql = new PDO($dsn, "root", "");

$result = $mysql->query("SELECT * FROM users ORDER BY id DESC")->fetchAll();

foreach ($result as $user) {
	echo '<b> ID пользователя: </b>'.$user['id'].'<br>';
	echo '<b> Login пользователя: </b>'.$user['login'].'<br>';
	echo '<b> Email пользователя: </b>'.$user['email'].'<br>';
	echo '<b> Password пользователя: </b>'.$user['password'].'<br> <br>';
}


Почему когда мы перебираем query в foreach, получаем тоже самое что и когда перебираем fetchAll?
query же не возвращает массив с данными о строках. А если и возвращает то какие различия между fetchAll и query?
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
BojackHorseman
@BojackHorseman Куратор тега PHP
...в творческом отпуске...
потому что объект PDOStatement, возвращаемый методом, реализует интерфейс Iterator. поэтому может быть перебран foreach'ем

а fetchAll просто этот массив результата сразу возвращает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 100 000 руб.
KS
от 40 000 до 50 000 руб.
БюроБюро Калининград
от 60 000 до 120 000 руб.
21 окт. 2019, в 22:35
500 руб./за проект
21 окт. 2019, в 21:56
10000 руб./за проект
21 окт. 2019, в 21:06
600 руб./в час