JSON给出null结果

时间:2017-04-13 18:56:53

标签: php json

我正在尝试从位于我的网络服务器上的数据库中获取数据。

我已将我的PHP文件get_data.php上传到网络服务器。

    <?php
define('HOST','localhost.000webhostapp.com');
define('USER','id1206871_myuser');
define('PASS','******');
define('DB','id1206871_mydb'); 
  $con = mysqli_connect(HOST,USER,PASS,DB);

  $sql = "select * from person";

  $res = mysqli_query($con,$sql);
 while($row = mysqli_fetch_array($res)){
    array_push($result,
    array('id'=>$row[0],
    'name'=>$row[1],
    'address'=>$row[2]
  ));
}
$json_errors = array(
    JSON_ERROR_NONE => 'No error has occurred',
    JSON_ERROR_DEPTH => 'The maximum stack depth has been exceeded',
    JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded',
    JSON_ERROR_SYNTAX => 'Syntax error',
);

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

echo 'Last error : ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;
mysqli_close($con);

?>

当我尝试此网址时https://mrpcml.000webhostapp.com/get_data.php 我得到了

  

{“result”:null}上次错误:未发生错误

我也尝试过验证JSON。

  

错误:第1行的解析错误:mrpcml.comli.com / g ^期待   'STRING','NUMBER','NULL','TRUE','FALSE','{','[',''undefined'

为什么我得到 null ?问题出在哪儿? 我不确定我的db主机。

1 个答案:

答案 0 :(得分:0)

你的$ result变量是在while循环中声明的(在外面做)。另外,请确保将其初始化为数组。