我需要从结果对象获取所有行。我正在尝试建立一个将容纳所有行的新数组。
这是我的代码:
$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 应该是包含所有行的新数组,但是我得到一个空数组。
$rows
任何想法为什么会这样?
您有一个轻微的语法问题,即错误的分号。
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;