-1

次のコードを使用して、PHP を使用して DB にアクセスしています

<?php
$host = "localhost";
$user = "**MASKED**";
$password = "**MASKED**";
$database = "parkfinder_zxq_coordinates";

$connection = mysql_connect($host, $user, $password) or die("couldn't connect to server");
$db = mysql_select_db($database, $connection) or die("couldn't select database.");
//$request_parked = $_REQUEST['parked'];
$request_long = $_REQUEST['longtitude'];
$request_lat = $_REQUEST['latitude'];
$q = mysql_query("SELECT * FROM Coordinates");
while ($e = mysql_fetch_assoc($q))
    $output[] = $e;

print (json_encode($output));

mysql_close();
?>

Javaでこのコードを使用して応答を読んだとき:

                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://parkfinder.zxq.net/default.php");
                    httppost.setEntity(new UrlEncodedFormEntity(coordinatesToSend));
                    HttpResponse response = httpclient.execute(httppost);
                    HttpEntity entity = response.getEntity();

                    String result = EntityUtils.toString(entity);
                    Log.d("RESULT", result);
                    JSONObject json_data = new JSONObject(result);

結果は次のとおりです。

2[{"longtitude":"32.32","latitude":"33.12"}]

これは有効な JSON データではないため、JSONObject が例外をスローします。これは 2 で始まります。どちらのコードもオンラインのチュートリアルから取られていますが、この種の問題はないようです。問題は2つの異なるMySQLサーバーで発生しました..

前もって感謝します

4

1 に答える 1

2

PHP コードをチェックして、print(json_encode($output)). それが間違っている可能性がある唯一のことです。

余談ですが、ループ$output=array()の前に必ず宣言する必要があります。whileそうしないと、結果行がない場合、予期しない出力が得られます。

于 2012-05-23T22:22:43.513 に答える