json_encode with MySQL array



我从MySQL中得到了一个带有值的数组,我正在尝试json_encode()它。虽然没有输出,什么都没有。只是一个白屏,没有错误,什么都没有。有什么想法吗?数组$rows完美地填充了值。

if (!$connection = mysqli_connect($db_host, $db_user, $db_pw, $db))
    die( "Connection not successful.n" );
$sql_qry = "SELECT * FROM `table`;";
if (!$result = mysqli_query($connection, $sql_qry))
    echo "Wasn't able to send query: ".mysqli_error($connection)."n";
while ($rows[] = mysqli_fetch_assoc($result));
mysqli_close($connection);
echo json_encode($rows);

while赋值实际上并不是循环访问结果集并将 SQL 查询中的现有行分配给此变量。如果您希望在 while 语句范围之外访问返回结果集的全部内容,则需要遍历结果集并将每一行分配给在执行 while 语句之前定义的数组:

$rows = array();
while ($ret = mysqli_fetch_assoc($result)):
    $rows[] = $ret;
endwhile;
mysqli_close($connection);
echo json_encode($rows);

最新更新