PHP脚本不回显json编码的数组

时间:2017-06-27 19:44:27

标签: php arrays json

我有一个php脚本,应该在json编码的字符串中回显一堆数据集。虽然页面是空白的。

<?php
$con = mysqli_connect("SERVER", "USER", "PASSWORD", "DATABASE");

if(!$sql = "SELECT news.title, news.content, login.username, news.id, news.date, news.timestamp, news.importance, news.version FROM news INNER JOIN login ON news.id = login.id ORDER BY timestamp DESC") {
    echo "FAIL";
}

mysqli_query($con,$sql);
$res = mysqli_query($con,$sql);

$result = array();

while($row = $res->fetch_array())
{
    array_push($result,
    array('title'=>$row[0],
    'content'=>$row[1],
    'author'=>$row[2],
    'id'=>$row[3],
    'date'=>$row[4],
    'timestamp'=>$row[5],
    'importance'=>$row[6],
    'version'=>$row[7]
    )); 
}
$oldjson = json_encode(["result"=>$result]);

echo json_encode(array("result"=>$result));

mysqli_close($con);

?>

这是什么问题?我尝试使用if(!..)进行一些错误检测,但它没有帮助。我认为问题可能是阵列创建和/或回声,但我无法弄清楚如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

你应该检查json_encode的结果,因为你编码来自数据库的数据,你可能有一些需要转义的东西。

$json = json_encode(...);
if ($json === false) {
     echo "Error = " . json_last_error() . " " . json_last_error_msg();
     // You may want to var_dump the $result var here to figure out what the problem is
} else {
     echo $json; // Should be ok
}