Цикл 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;
}