@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?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
BojackHorseman
@BojackHorseman Куратор тега PHP
...в творческом отпуске...
потому что объект PDOStatement, возвращаемый методом, реализует интерфейс Iterator. поэтому может быть перебран foreach'ем

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

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

Войти через центр авторизации
Похожие вопросы
04 июл. 2020, в 14:15
3000 руб./за проект
04 июл. 2020, в 13:49
30000 руб./за проект
04 июл. 2020, в 12:44
1000 руб./в час