Цикл foreach в php 5.3 и 7.2

Я хочу использовать этот цикл foreach в PHP 5.3, который отлично работает в PHP 7.2

$query = sprintf("SELECT a,b FROM table");
$result = $mysqli->query($query);
$data = array();
foreach ($result as $row) {
 $data[] = $row;
}

Я прочитал официальную документацию и узнал, что цикл foreach работает не так, но я не смог понять это.

1 ответ

Решение

Вы получаете результаты, повторяя объект результата с:

foreach ($result as $row) {
    $data[] = $row;
}

Поддержка этого не была добавлена ​​до PHP 5.4. ( См. Список изменений в руководстве). Вместо этого вам нужно явно вызвать метод выборки.

while ($row = $result->fetch_assoc()) {
    $data[] = $row;
}
Другие вопросы по тегам