2017-04-13 57 views
0

我试图从位于我的Web服务器上的数据库中提取数据。给出空结果的JSON

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

<?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); 

?> 

当我尝试这个URL https://mrpcml.000webhostapp.com/get_data.php 我得到

{"result":null}Last error : No error has occurred

我也试图验证JSON。

Error: Parse error on line 1: mrpcml.comli.com/g^Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'

为什么会出现这种?哪里有问题? 我不确定我的分贝主机。

+0

var_dump()&echo是你的朋友..我的朋友! – JRR

回答

0

您的$ result变量在while循环内声明(在外部执行)。另外确保你将它初始化为一个数组。

+0

我是新的PHP ..我不知道我是否做了你说的..我改变了代码为.. $ result = array(); $ res = mysqli_query($ con,$ sql); while($ row = mysqli_fetch_array($ res)) 结果是:{“result”:[]} –

+0

将东西推入循环内部的php数组中,您将需要如下所示: $ result [] = $ row; –