2010-11-30 7 views
1

bien c'est l'extrait de code i utiliser pour accéder au getUser.php retrive détails de l'utilisateur à partir d'une base de données MySQL dans mon application:Connect base de données MySQL à partir d'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()); 
     } 

} 

Cet extrait est tiré de http://helloandroid.com

Tout est bien configuré: la base de données MySQL, IIS avec FASTCGi, les outils PHP et les pilotes. même le script ci-dessous lorsqu'il est appelé à partir du navigateur avec url: http://192.xxx.xx.x.xxx/getUser.php?uid=demo fonctionne très bien, mais renvoie l'erreur dans Android avec java.lang.NullPointerException et org.json.JSONEXCEPTION: Fin de l'entrée à caractère 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(); 
?> 

Quelqu'un peut-il aider dans cette section?

Cordialement, Mistry hardik

+0

Veuillez publier la pile complète des exceptions et indiquer les lignes de code auxquelles elles se réfèrent. –

+0

exécutez-vous votre serveur sur le même système sur lequel l'émulateur est en cours d'exécution. –

+0

Ce tutoriel a fonctionné pour moi: http://itweb-projects.com/wordpress/android-connecting-to-mysql-using-php – bogdanmogo

Répondre

1

Vous utilisez l'objet HttpPost, ce qui signifie que vous initiez un post-demande! Êtes-vous sûr de ne pas vouloir faire une demande HttpGet? J'ai rencontré le même problème et le passage à HttpGet a résolu mon problème!

Questions connexes