2013-11-21 21 views
-1

我正在嘗試開發一個連接到MySQL數據庫的android應用程序。Android,PHP和MySQL

我使用PHP作爲Web Service解析JSON數組中的數據。

但是,當我點擊進行該過程時,什麼也沒有發生,數據不會被添加到數據庫中。 首先我更改了代碼,並且我使用AsynTask<>來避免RunningOnMainThread異常,但y無法使其工作。

有什麼建議嗎?

下面的代碼:

PHP:

<?php 
$hostname ="localhost"; 
$database ="traffic_qro"; 
$username ="root"; 
$password =""; 

$localhost = mysql_connect($hostname,$username,$password); 

mysql_select_db("traffic_qro"); 
$name = $_REQUEST['driver_name']; 
$number = $_REQUEST['driver_number']; 
$plate = $_REQUEST['driver_plate']; 
$brand = $_REQUEST['driver_brand']; 
$model = $_REQUEST['driver_model']; 

$sql = "INSERT INTO users VALUES('".$name."', '".$number."', '".$plate."', '".$brand."', '".$model."'');"; 

$res = mysql_query($sql); 

if(!$res) { 
    echo "Error in query: ".mysql_error(); 
} 
mysql_close(); 
?> 

DBTask.java

class DBTask extends AsyncTask<String, Void, Void> { 

    protected Void doInBackground(String... args) { 
     InputStream is = null; 
     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
     nameValuePairs.add(new BasicNameValuePair("driver_name", args[0])); 
     nameValuePairs.add(new BasicNameValuePair("driver_number", args[1])); 
     nameValuePairs.add(new BasicNameValuePair("driver_plate", args[2])); 
     nameValuePairs.add(new BasicNameValuePair("driver_brand", args[3])); 
     nameValuePairs.add(new BasicNameValuePair("driver_model", args[4])); 
     try { 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost(
        "http://192.168.1.85/traffic_qro/add_client_doc.php"); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      is = entity.getContent(); 
      Log.e("log_tag", is.toString()); 
     } catch (Exception e) { 
      Log.e("log_tag", "Error in http connection" + e.toString()); 
     } 
     return null; 
    } 

    protected void onPostExecute(String feed) { 
     // TODO: check this.exception 
     // TODO: do something with the feed 
    } 
} 

實施OD DBTask.java

new DBTask().execute(driver_name, drvr_num, driver_car_plate, 
        driver_car_brand, driver_car_model); 
+0

你從遠程PHP服務器接收響應? –

回答

0

你有一個錯誤你的SQL語句,規範ifically左右'".$model."'');($模式之後兩個單引號):

變化:

$sql = "INSERT INTO users 
     VALUES('".$name."', '".$number."', '".$plate."', '".$brand."', '".$model."'');"; 

$sql = "INSERT INTO users 
     VALUES('".$name."', '".$number."', '".$plate."', '".$brand."', '".$model."');"; 

要檢查類似這樣的錯誤,使用:

$res = mysql_query($sql, $localhost) or trigger_error(mysql_error($localhost)); 
+0

我改變了雙重單引號錯誤,但不做任何事情。我不知道我是否正確解釋了自己,讓我知道是否是這樣。 PS:對不起我的英語。 :/ – jesuscc29