2010-11-30 11 views
1

auch dies ist der Code-Schnipsel ich die getUser.php Zugriff verwenden, um Benutzerdaten aus einer MySQL-Datenbank in meiner Anwendung retrive:Connect MySQL-Datenbank von Android

String result = ""; 

    //the year data to send 

    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 

    nameValuePairs.add(new BasicNameValuePair("uid","demo")); 

     //http post 
     try{ 
       HttpClient httpclient = new DefaultHttpClient(); 

      HttpPost httppost = new HttpPost("http://192.xxx.xx.xxx/getUser.php"); 

      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
       HttpResponse response = httpclient.execute(httppost); 
       HttpEntity entity = response.getEntity(); 
       InputStream is = entity.getContent(); 
     }catch(Exception e){ 
       Log.e("log_tag", "Error in http connection "+e.toString()); 
     } 
     //convert response to string 
     try{ 
       InputStream is = null; 
       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 
     try{ 
       JSONArray jArray = new JSONArray(result); 
       for(int i=0;i<jArray.length();i++){ 
         JSONObject json_data = jArray.getJSONObject(i); 
         Log.i("log_tag","id: "+json_data.getInt("id")+ 
           ", name: "+json_data.getString("fname")+ 
           ", sex: "+json_data.getInt("sex")+ 
           ", birthyear: "+json_data.getInt("dob") 
         ); 
       } 

    } 
     catch(JSONException e){ 
       Log.e("log_tag", "Error parsing data "+e.toString()); 
     } 

} 

Dieser Ausschnitt ist aus http://helloandroid.com genommen

Alles ist gut konfiguriert: das MySQL Db, IIS mit FASTCGi, PHP Tools und Treiber. auch das Skript unten, wenn sie von Browser mit URL genannt: http://192.xxx.xx.x.xxx/getUser.php?uid=demo funktioniert gut, aber gibt Fehler in Android mit java.lang.NullPointerException und org.json.JSONEXCEPTION: Ende der Eingabe an Charakter 0

<?php 
mysql_connect("myhost","username","pwd"); 
mysql_select_db("mydb"); 

$q=mysql_query("SELECT * FROM userinfo WHERE uid ='".$_REQUEST['uid']."'"); 

while($e=mysql_fetch_assoc($q)) 
     $output[]=$e; 

print(json_encode($output)); 

mysql_close(); 
?> 

Kann jemand in diesem Abschnitt helfen?

Grüße, Mistry Hardik

+0

Bitte posten Sie den vollständigen Stacktrace von Ausnahmen und weisen Sie darauf hin, auf welche Codezeilen sie verweisen. –

+0

führen Sie Ihren Server auf demselben System aus, auf dem der Emulator ausgeführt wird. –

+0

Dieses Tutorial funktionierte für mich: http://itweb-projects.com/wordpress/android-connecting-to-mysql-using-php – bogdanmogo

Antwort

1

Sie die Httppost Objekt verwenden, was bedeutet, dass Sie initiieren eine Post-Anforderung werden! Sind Sie sicher, dass Sie keine HttpGet-Anfrage machen möchten? Ich lief in das gleiche Problem und wechselte zu HttpGet löste mein Problem!