Java AsyncTask NameValuePair未发送值
我正在Android Studio中使用AsyncTask向PHP文件发送值。 我创建一个Java AsyncTask NameValuePair未发送值,java,php,android,mysql,asynchronous,Java,Php,Android,Mysql,Asynchronous,我正在Android Studio中使用AsyncTask向PHP文件发送值。 我创建一个ArrayList,然后用nameValuePairs添加我的值。添加并将它们发送到我的PHP文件,该文件执行对MySQL数据库的请求。 对于前四个值,它工作得非常好,但是下一个值没有发送,我也找不到原因,因为它与前四个值的结构完全相同。 当我尝试添加“pa”参数时,数据库中没有添加任何内容 这里我调用我的函数(参数包含正确的值): 在这里,我在数组中添加值并发送它们 public class DbConn
ArrayList
,然后用nameValuePairs添加我的值。添加并将它们发送到我的PHP文件,该文件执行对MySQL数据库的请求。
对于前四个值,它工作得非常好,但是下一个值没有发送,我也找不到原因,因为它与前四个值的结构完全相同。
当我尝试添加“pa”参数时,数据库中没有添加任何内容
这里我调用我的函数(参数包含正确的值):
在这里,我在数组中添加值并发送它们
public class DbConnect extends AsyncTask<String, Void, String> {
protected String doInBackground(String... param) {
ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair("sexe", param[0].toString()));
nameValuePairs.add(new BasicNameValuePair("age", param[1].toString()));
nameValuePairs.add(new BasicNameValuePair("formule", param[2].toString()));
nameValuePairs.add(new BasicNameValuePair("base", param[3].toString()));
nameValuePairs.add(new BasicNameValuePair("pa", param[4].toString()));
try {
HttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/AppBdd.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
client.execute(httppost);
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
return null;
}
}
公共类DbConnect扩展异步任务{
受保护的字符串doInBackground(字符串…参数){
ArrayList nameValuePairs=新的ArrayList();
添加(新的BasicNameValuePair(“sexe”,参数[0].toString());
添加(新的BasicNameValuePair(“年龄”,参数[1]。toString());
添加(新的BasicNameValuePair(“公式”,参数[2].toString());
添加(新的BasicNameValuePair(“base”,param[3].toString());
添加(新的BasicNameValuePair(“pa”,参数[4].toString());
试一试{
HttpClient=new DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://10.0.2.2/AppBdd.php");
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
执行(httppost);
}捕获(例外e){
e(“Log_标记”,“http连接错误”+e.toString());
}
返回null;
}
}
我用PHP获取值并执行我的函数,该函数应该将它们添加到我的数据库中:
<?php
require_once ("rees.php");
$pdo = PdoGsb::getPdoGsb();
$sexe = $_REQUEST['sexe'];
$age = $_REQUEST['age'];
$form = $_REQUEST['formule'];
$base = $_REQUEST['base'];
$pa = $_REQUEST['pa'];
$pdo->setClient($sexe, $age, $form, $base, $pa);
我不太擅长web连接,但请求密钥和BasicNameValuePair不应该具有相同的密钥(一个是'pa'和一个是'p1')是的,我的错误未命中编辑,密钥到处都是'pa'
<?php
require_once ("rees.php");
$pdo = PdoGsb::getPdoGsb();
$sexe = $_REQUEST['sexe'];
$age = $_REQUEST['age'];
$form = $_REQUEST['formule'];
$base = $_REQUEST['base'];
$pa = $_REQUEST['pa'];
$pdo->setClient($sexe, $age, $form, $base, $pa);
<?php
class PdoGsb{
private static $serveur='mysql:host=localhost';
private static $bdd='dbname=testdepeau';
private static $user='root';
private static $mdp='';
private static $monPdo;
private static $monPdoGsb=null;
private function __construct(){
PdoGsb::$monPdo = new PDO(PdoGsb::$serveur.';'.PdoGsb::$bdd, PdoGsb::$user, PdoGsb::$mdp);
PdoGsb::$monPdo->query("SET CHARACTER SET utf8");
PdoGsb::$monPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
public function __destruct(){
PdoGsb::$monPdo = null;
}
public static function getPdoGsb(){
if(PdoGsb::$monPdoGsb==null){
PdoGsb::$monPdoGsb= new PdoGsb();
}
return PdoGsb::$monPdoGsb;
}
public function setClient($sexe, $age, $form, $base, $pa){
$req="INSERT INTO client (formule, sexe, age, base, pa)
VALUES
('$form', '$sexe', '$age', '$base', '$pa');";
$res2= PdoGsb::$monPdo->exec($req);
}
}
?>