我正在开发一个将数据发送到服务器的程序。服务器正在接收我的数据,但只接收到最后一位。这是我的 Android 代码:
ArrayList<NameValuePair> j2 = new ArrayList<NameValuePair>();
j2.add("drink_name", "rootbeer")
j2.add("drink_name", "pepsi")
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("kubie.dyndns-home.com/R2Bar2/getingredients.php");
httppost.setEntity(new UrlEncodedFormEntity(j2));
HttpResponse response = httpclient.execute(httppost);
responseText = EntityUtils.toString(response.getEntity());
但它只是将最后一个条目(百事可乐)添加到数据库中。 这是我的 php:
<?php
$handle = mysql_connect('localhost','root','xxxx');
if($handle==false)
{
die('No database connection');
}
$result = mysql_query("TRUNCATE TABLE 'available_ingredients'");
$db=mysql_select_db('r2bar2');
$query='INSERT INTO available_ingredients (drink_name) VALUES ("'.$_POST["drink_name"].'")';
$result=mysql_query($query);
?>
最佳答案
试试这个
j2.add(new BasicNameValuePair("drink_name[]", "rootbeer"));
j2.add(new BasicNameValuePair("drink_name[]", "pepsi"));
您在实体中放入的是一个 NameValuePair 列表 - 因此您添加的每个内容都应该是一个 NameValuePair,而 BasicNameValuePair 就是其中之一
在 PHP 中
<?php
foreach ($_POST["drink_name"] as $drink_name) {
$query=...
$result=...
}
?>
但请注意 - 请确保在输入上调用 mysql_real_escape_string
以防止 SQL 注入(inject)攻击。
关于php - HTTPPOST Android 到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9746156/