2017-04-13 95 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; –