2012-05-16 2 views
2

Я пытаюсь отправить некоторые данные в базу данных mysql из приложения android, данные в строковой форме (это результат теста, который пользователь завершает), и я не уверен, в чем проблема.HTTP-сообщение не отправляет данные в базу данных?

вот мой андроид код HTTP Post:

// http post 
HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://ast.ncl-coll.ac.uk/~cmaughan/firesafety/app_results.php"); 

      try { 
       //Link to quiz string results 
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4); 
       nameValuePairs.add(new BasicNameValuePair("StaffID","StaffID")); 
       nameValuePairs.add(new BasicNameValuePair("Forename","Forename")); 
       nameValuePairs.add(new BasicNameValuePair("Surname", "Surname")); 
       nameValuePairs.add(new BasicNameValuePair("Score", "Score")); 
       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()); 
       Toast.makeText(getApplicationContext(), 

и вот мой PHP:

<?php 
include('./inc/connection.inc.php'); 
connect(); 
//retrieve the data 
$StaffID = $_POST['StaffID']; 
$Forename = $_POST['Forename']; 
$Surname = $_POST['Surname']; 
$Score = $_POST['Score']; 

//Insert into the database 
$sql = "INSERT INTO tblQuiz (staffid, forename, surname, score) VALUES ('$StaffID',  '$Forename', '$Surname', '$Score')"; 

$result = mysql_query($sql) or die("Could not run query"); 



    // Close connection to the database 

    mysql_close(); 


    // Echo success 
    echo "Upload Successful"; 


?> 

любая помощь была бы очень благодарна, я думаю, что массив неправильно, поскольку я пытаюсь отправить строку с использованием метода HTTP-почты

Примечания: * Результаты викторины входят в базу данных mysqllite в DDMS, я просто хочу, чтобы эти результаты загружались в базу данных php/mysql. *

+0

попытка напечатать и получить товару исключение –

+0

вставьте LogCat здесь –

+0

это не LogCat человек ,,,, после вызова веб-службы, какой ответ приходит? –

ответ

0
$sql = "INSERT INTO tblQuiz (staffid, forename, surname, score) VALUES ('$StaffID',  '$Forename', '$Surname', '$Score')"; 

Вы загрузили значения из вашего массива $ _POST в переменные "$ StaffID" и т.д.? Если нет, то вы бы после что-то вроде:

$sql = "INSERT INTO tblQuiz (staffid, forename, surname, score) VALUES ('{$_POST['StaffID']}',  '{$_POST['Forename']}', '{$_POST['Surname']}', '{$_POST['Score']}')"; 
0
Check ur mysql server connection is established or not 

    $con=mysql_connect('host','username','password'); 
    if (!$con) { 
     die('Could not connect: ' . mysql_error()); 
    }else{ 
    mysql_select_db('db_name',$con); 
    $sql = "INSERT INTO tblQuiz (staffid, forename, surname, score) VALUES ("'.$StaffID.'","'.$Forename.'","'.$Surname.'","'.$Score.'")"; 
    $result = mysql_query($sql);} 
+0

У меня есть соединение, которое я просто пропустил, это бит кода, это там, теперь я использую метод connection.inc.php – user1398487

0

ли места в здесь опечатка, или в коде (как это может вызвать проблемы)

HttpPost httppost = new HttpPost("http://ast.ncl-  oll.ac.uk/~cmaughan/firesafety/app_results.php"); 
0
$sql = "INSERT INTO tblQuiz (staffid, forename, surname, score) VALUES ('".$_POST['StaffID']."',  '".$_POST['Forename']."', '".$_POST['Surname']."', '".$_POST['Score']."')"; 

попробовать этот он будет работать

0

Если вы являетесь webservice в приложении для Android, вы должны упомянуть название типа Conent, как показано ниже код

public String postData(String result, JSONObject obj) { 
      // Create a new HttpClient and Post Header 
      String InsertTransactionResult = null; 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpParams myParams = new BasicHttpParams(); 
      HttpConnectionParams.setConnectionTimeout(myParams, 1000); 
      HttpConnectionParams.setSoTimeout(myParams, 1000); 

      try { 

       HttpPost httppost = new HttpPost(result.toString()); 
       httppost.s 

etHeader("Content-type", "application/json"); 
      StringEntity se = new StringEntity(obj.toString()); 
      se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, 
        "application/json")); 
      httppost.setEntity(se); 

      HttpResponse response = httpclient.execute(httppost); 
      Result = EntityUtils 
        .toString(response.getEntity()); 

     } catch (ClientProtocolException e) { 

     } catch (IOException e) { 
     } 
     return Result; 
    } 
1

Попробуйте это:

$sql = "INSERT INTO tblQuiz (staffid, forename, surname, score) VALUES ('".$_POST['StaffID']."',  '".$_POST['Forename']."', '".$_POST['Surname']."', '".$_POST['Score']."')"; 
1
  1. Если вы хотите, чтобы увидеть результат, вы можете кодировать результат в формате Json, потому что эхо не может отправлять структурированные значения.

  2. Если ваши данные являются результатом викторины почему вы положили статическое значение как этого

    nameValuePairs.add(new BasicNameValuePair("StaffID","StaffID"));

    вместо этого, поставить реальный результат викторины

  3. Раньше тест онлайн почему у вас нет теста на вашем эмуляторе

  4. На стороне php убедитесь, что значения вставляются в статическом состоянии со значениями.

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