получить массив строк с результатом mysqli

Я пытаюсь проверить, соответствует ли строка одному из полей в определенном столбце таблицы. Для этого мне нужно получить все строки из объекта результата. Я использую php 5.2.x, поэтому не могу использовать метод fetch_row_all ; вместо этого я пытаюсь создать новый массив, который будет содержать все строки.

Вот мой код:

 $sql = new mysqli($config['host'],$config['user'],$config['pass'],$config['db_name']); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT domain FROM services"; $result = $sql->query($query); while($row = $result->fetch_row()); { $rows[]=$row; } $result->close(); $sql->close(); return $rows; 

$rows должен быть новым массивом, который содержит все строки, но вместо этого я получаю пустой массив.

Есть идеи, почему это происходит?

Solutions Collecting From Web of "получить массив строк с результатом mysqli"

У вас была небольшая проблема синтаксиса, а именно ошибочная полуточка.

 while($row = $result->fetch_row()); 

Обратите внимание на запятую в конце? Это означает, что следующий цикл не выполнялся в цикле. Избавься от этого, и он должен работать.

Кроме того, вы можете проверить, действительно ли запрос работает:

 $sql = new mysqli($config['host'], $config['user'], $config['pass'], $config['db_name']); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit; } $query = "SELECT domain FROM services"; $result = $sql->query($query); if (!$result) { printf("Query failed: %s\n", $mysqli->error); exit; } while($row = $result->fetch_row()) { $rows[]=$row; } $result->close(); $sql->close(); return $rows;