2011-08-09 11 views
2


Webサービスからmysqlデータベースを読み込むはずのAndroidアプリケーションがあります。
これは、Web serivceのコードです:httpclientを使用したWebサービスからの読み取り

$q=mysql_query("SELECT * FROM Rates"); 
while($e=mysql_fetch_assoc($q)) 
     $output[]=$e; 

print(json_encode($output)); 
mysql_close(); 

、これは私のアプリケーションのコードです:結果の文字列がクエリを取得していないいくつかの理由

public void getQuery() { 
    String result = ""; 
    InputStream is; 
    try{ 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpGet httpget = new HttpGet("http://dakatora.co.il/android/androidsql.php"); 
      HttpResponse response = httpclient.execute(httpget); 
      HttpEntity entity = response.getEntity(); 
      is = entity.getContent(); 
    }catch(Exception e){ 
      Log.e("log_tag", "Error in http connection "+e.toString()); 
      is = new InputStream() { 

       @Override 
       public int read() throws IOException { 
        // TODO Auto-generated method stub 
        return 0; 
       } 
      }; 
    } 
    try{ 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
      StringBuilder sb = new StringBuilder(); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
        sb.append(line + "\n"); 
      } 
      is.close(); 

      result=sb.toString(); 
    }catch(Exception e){ 
      Log.e("log_tag", "Error converting result "+e.toString()); 
    } 

    //parse json data 

、代わりにありますちょうど "\ n"になります。 誰かが間違っていることを教えてもらえますか?

答えて

1

.phpページに何も出力されていません。ブラウザでURLを押してみてください。空白のページが表示されます。投稿したPHPコードがファイル全体である場合は、実際にデータベースに接続するのを忘れてしまいます。サーバのエラーログを調べて、スクリプトがエラーを吐いているかどうかを確認します(そして/またはPHPのdisplay_errorsオプションをオンにします)。

何もない場合は、何かしてみてください:クエリを仮定することが悪い習慣です

$q = mysql_query("SELECT * FROM Rates") or die(mysql_error()); 

は、このような些細なものを成功します。 SQLの構文は完璧かもしれませんが、エラーハンドリングをしないことに間違ってしまうその他の理由があまりにも多くあります。

+0

あなたは、私は次のようなエラーが権利を取得した。 致命的なエラーは:行11 に/var/www/vhosts/dakatora.co.il/httpdocs/android/androidsql.phpで未定義の関数json_encode()を呼んで私はやらなければなりませんか? – eladrich

+0

あなたはおそらく古いPHPバージョンです。 json_encode()はv5.2から標準になったので、古いPECLパッケージ(http://pecl.php.net/package/json)を試してみるか、最新のPHPバージョンにアップグレードする必要があります。 –

+0

ありがとう、私は私ができることがわかります(私はJavaアプリケーションを書くだけで、Webサービスは私の同僚によって維持されます)。 – eladrich

関連する問題