我是Android编程的新手,我试图接受用户输入并将其添加到我的外部数据库。现在我的PHP代码:在Android中添加到外部数据库
<?php
mysql_connect("host","login","pass") or die ("Unable to connect to MySQL");
mysql_select_db("database");
mysql_query("INSERT INTO Table (number, format, name, price) VALUES ('".$_REQUEST['number1']."', ".$_REQUEST['format1'].", ".$_REQUEST['name1'].", ".$_REQUEST['price1'].")");
mysql_close();
>
我看不出有什么毛病我的PHP,但是当我运行我的程序,我没有得到任何错误,但是当我看我的?数据库似乎没有任何实际上被添加。我的Java代码是:
Log.d("debug", "ENTER METHOD ADD");
new Thread(new Runnable(){
public void run(){
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
EditText eNumber = (EditText) findViewById(R.id.barcodeEdit);
EditText eFormat = (EditText) findViewById(R.id.codeFormatEdit);
EditText eName = (EditText) findViewById(R.id.titleEdit);
EditText ePrice = (EditText) findViewById(R.id.priceEdit);
Log.d("debugNumber", eNumber.getText().toString());
Log.d("debugFormat", eFormat.getText().toString());
Log.d("debugName", eName.getText().toString());
Log.d("debugPrice", ePrice.getText().toString());
nameValuePairs.add(new BasicNameValuePair("number1", eNumber.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("format1", eFormat.getText().toString())); //you can add as many you need
nameValuePairs.add(new BasicNameValuePair("name1", eName.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("price1", ePrice.getText().toString()));
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://MY_SITE.com/my.php");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
//is = entity.getContent();
Log.d("debug", "ENDED TRY");
}catch (Exception e) {
// TODO: handle exception
Log.e("log_tag", e.toString());
//return false;
//Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
}
}
}).start();
这是我添加的代码位。我知道我可以很好地连接到数据库,因为我用来搜索数据库的代码工作正常,但由于某种原因,我的添加是搞砸了。我有代码在新线程中运行,因为我有一天学到了不能在程序的主线程中执行这些http请求。我一直在寻找答案,并没有找到一个,也许我只是想念一条线,任何帮助,非常感谢。
您的PHP脚本是否接收正确的值? – 2013-03-23 03:17:12
我相信是这样的,我有这些Log.d命令以确保即时消息从文本框中解析正确的值,是否有一种方法可以真正查看发送到PHP脚本的内容?我想我可以打印出什么是存储在number1,format1等在我的PHP脚本? – user2200175 2013-03-23 03:19:06
对所有字符串变量“'”进行引用。$ _ REQUEST ['name1']。“''并使用PDO或mysqli和预处理语句。不要直接将请求传递给查询。你打开sql注入。 – bitWorking 2013-03-23 03:24:12