json_encode与MySQL数组

时间:2014-03-02 00:41:16

标签: php json output

我从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);

1 个答案:

答案 0 :(得分:-1)

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

$rows = array();
while ($ret = mysqli_fetch_assoc($result)):
    $rows[] = $ret;
endwhile;

mysqli_close($connection);

echo json_encode($rows);