2013-11-21 3 views
-1

Я пытаюсь разработать приложение для Android, которое подключается к базе данных MySQL.Android, PHP и MySQL

Я использую PHP в качестве веб-службы, анализируя данные из массива JSON.

Но когда я нажимаю, чтобы выполнить процесс, ничего не происходит, данные не добавляются в базу данных. Сначала я изменяю код, и я использую AsynTask<> для исключения RunningOnMainThread Exception, но я не могу заставить его работать.

Любые предложения?

Вот код:

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 
    } 
} 

спосо Реализация DBTask.java

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

Ты получая ответ с удаленного сервера PHP? –

ответ

0

Вы получили ошибку в ваш оператор SQL, spec 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

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