2

我正在尝试从 android 应用程序向 mysql 数据库发送一些数据,数据是字符串形式(它是用户完成的测验的结果),我不确定问题是什么。

这是我的 HTTP Post 的 android 代码:

// 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 Post 方法发送字符串

注意: *测验的结果将进入 DDMS 中的 mysqllite 数据库,我只想将这些结果上传到 php/mysql 数据库。*

4

7 回答 7

1
  1. 如果您想查看结果,可以将结果编码为 Json 格式,因为 echo 无法发送结构化值。

  2. 如果您的数据是测验的结果,为什么您要放置这样的静态值

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

    相反,把测验的真实结果

  3. 之前,在线测试为什么你没有在你的模拟器上测试

  4. 在 php 方面,请确保在尝试使用静态值时插入值。

于 2013-11-27T11:08:21.743 回答
1

尝试这个:

$sql = "INSERT INTO tblQuiz (staffid, forename, surname, score) VALUES ('".$_POST['StaffID']."',     '".$_POST['Forename']."', '".$_POST['Surname']."', '".$_POST['Score']."')";
于 2013-03-18T09:09:34.890 回答
0

如果您是 android 应用程序中的网络服务,那么您必须提及如下代码的内容类型

    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;
    }
于 2012-05-16T14:06:20.883 回答
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']}')";
于 2012-05-16T11:43:33.287 回答
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);}
于 2012-05-16T11:47:19.980 回答
0

这里的空格是错字还是在代码中(因为这会导致问题)

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

试试这个,它会起作用的

于 2012-05-16T11:50:22.847 回答