2017-04-13 80 views
0

Webサーバーにあるデータベースからデータを取得しようとしています。JSONがnullの結果を返す

PHPファイルget_data.phpをWebサーバーにアップロードしました。私はこのURL https://mrpcml.000webhostapp.com/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); 

?> 

私はまた、JSONを検証しようとした

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

を取得します。

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

は、なぜ私がこのヌルを取得していますか?問題はどこだ? dbホストについてよく分かりません。

+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 [] = $行; –

関連する問題