使用php脚本和来自android的httppost将数据添加到在线数据库

时间:2012-09-02 18:38:42

标签: java php android mysql

在我的应用程序中,我有一个特定的表单供用户完成,我想将这些数据存储在我的在线数据库中。

这是我在java中的代码:

public void send_data_to_DB(){
         String result = "";
         InputStream is = null;
         StringBuilder sb=null;
         ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();//() before
         nameValuePairs.add(new BasicNameValuePair("table", table));
         nameValuePairs.add(new BasicNameValuePair("code", Integer.toString(code)));
         nameValuePairs.add(new BasicNameValuePair("name", name));
         nameValuePairs.add(new BasicNameValuePair("email", email));
            try{
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost("http://myurl.php");
                HttpEntity entity = new UrlEncodedFormEntity(nameValuePairs);
                httppost.addHeader(entity.getContentType());
                httppost.setEntity(entity);
                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());
        }
     }

这是我的php脚本:

<?php

    mysql_connect("dserver","User","Code");

    mysql_select_db("DB_Name");

$table.=$_POST['table'];
$code.=$_POST['code'];
$name.=$_POST['name'];
$email.=$_POST['email'];

  $q=mysql_query(" INSERT INTO {$table} (code,name,email) VALUES ({$code},{$name},{$email}) ")or die(mysql_error());


mysql_close();
?>

我认为它必须是我的php和我分配或使用变量的方式,但我在PHP中不是很有经验。你能救我吗?

2 个答案:

答案 0 :(得分:1)

在PHP方面,它必须是.=而不是=.

修改

缺少SQL语句中的引号:

更改为

"INSERT INTO {$table} (code,name,email) VALUES ('{$code}','{$name}','{$email}')"

答案 1 :(得分:0)

$table=.$_POST['table'];
$code=.$_POST['code'];
$name=.$_POST['name'];
$email=.$_POST['email'];

每个等号后都有额外的点,这可能会导致语法错误。

你的另一个问题是sql注入漏洞,在查询中使用之前总是正确检查/转义值。