2013-02-22 4 views
1

Я следил за учебником, чтобы подключиться к базе данных MySQL через PHP Script из приложения для Android. Моя проблема заключается в (из LogCat): «Uncaught TypeError: Невозможно вызвать метод« select »undefined at null: 1». Некоторое время назад я имел успех, поэтому, возможно, я случайно изменил что-то, что вызвало это? В моей базе данных есть 4 столбца, и с этой стороны все в порядке. Вот мой PHP код:Подключиться к базе данных MySQL с Android

<?php 

$host="xxxxx"; // Host name 
$username="xxxxx"; // Mysql username 
$password="xxxxx"; // Mysql password 
$db_name="xxxxx"; // Database name 
$tbl_name="xxxxx"; // Table name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 

mysql_select_db("$db_name")or die("cannot select DB"); 
$q=mysql_query("SELECT * FROM $tbl_name WHERE pass>'".$_REQUEST['year']."'"); 
while($e=mysql_fetch_assoc($q)) 
    $output[]=$e; 

print(json_encode($output)); 

mysql_close(); 
?> 

... и на Android:

 String result = ""; 
    //the year data to send 
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
    nameValuePairs.add(new BasicNameValuePair("year","Pass1")); 

    //http post 
    try{ 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://MyWebsite/queryfromandroid.php"); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      is = entity.getContent(); 
    }catch(Exception e){ 
      Log.e("log_tag", "Error in http connection "+e.toString()); 
    } 
    //convert response to string 
    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 
    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.getString("password") 

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

Спасибо.

+0

Попробуйте вызова вас r php script из браузера - это покажет вам какие-либо ошибки в скрипте. Сначала исправьте их, затем приступите к исправлению стороны Android. –

+1

Теперь многие пользователи SO только что видели информацию о вашей базе данных, славный! Я бы рекомендовал изменить. –

+0

Извините, но я не могу получить доступ к Журналу ошибок в моем бесплатном хостинговом плане и LogCat, есть только эта ошибка, ничего больше ... – Nikita

ответ

0

Спасибо вам все, но я Fixed мою проблему, крошечная маленькая ошибка всегда несет ответственность за такого рода Бугу трудно обнаружить, здесь код я модифицировал, в Php Script:

я заменил это:

$q=mysql_query("SELECT * FROM $tbl_name WHERE pass>'".$_REQUEST['year']."'"); 

этим:

$q=mysql_query("SELECT * FROM $tbl_name WHERE pass='".$_REQUEST['year']."'"); 

это> этим =

Смежные вопросы