来自Android的带有Json的Php webservice问题&;数据库
我正在制作一个Web服务,它从Android应用程序获取Json流量,并将其插入MySQL数据库。 我的应用程序没有导出错误(wich在Android studio的模拟器中运行),问题似乎是Web服务。 当我从应用程序导出数据并调用webservice时,我的数据库中没有任何内容 这是webservice代码来自Android的带有Json的Php webservice问题&;数据库,php,json,web-services,Php,Json,Web Services,我正在制作一个Web服务,它从Android应用程序获取Json流量,并将其插入MySQL数据库。 我的应用程序没有导出错误(wich在Android studio的模拟器中运行),问题似乎是Web服务。 当我从应用程序导出数据并调用webservice时,我的数据库中没有任何内容 这是webservice代码 $hote='mysql:host=localhost;port=3306;dbname=gedimat'; $utilisateur='root'; $mot_passe=''; t
$hote='mysql:host=localhost;port=3306;dbname=gedimat';
$utilisateur='root';
$mot_passe='';
try {
$connexion = new PDO($hote, $utilisateur, $mot_passe);
$connexion->exec("set names utf8");
return $connexion;
}
catch(PDOException $e) {
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
return null;
}
// récupération du flux JSON
$json = file_get_contents('php://input');
$obj = json_decode($json);
// insertion ou mise à jour des données dans la table Vote
$res = $obj->Votes;
foreach($res as $unVote) {
$requete = 'INSERT INTO vote(idVote, numTicket, idImage, note, dateVote) VALUES(:idVote, :numTicket,:idImage,:note,:dateVote)';
$prep = $connexion->prepare($requete);
$prep->bindValue(':idVote', $unVote->{'idVote'}, PDO::PARAM_INT);
$prep->bindValue(':numTicket',$unVote->{'numTicket'} , PDO::PARAM_STR);
$prep->bindValue(':idImage', $unVote->{'idImage'}, PDO::PARAM_STR);
$prep->bindValue(':note', $unVote->{'note'}, PDO::PARAM_STR);
$prep->bindValue(':dateVote', $unVote->{'dateVote'}, PDO::PARAM_STR);
$ok =$prep->execute();
如果你能帮我,我将不胜感激。
如果您需要更多信息,请咨询我;) 如果这只是一个包含对象的数组,那么循环是不必要的
$res = $obj->Votes[0]; // $res is now the object
$requete = 'INSERT INTO vote
(idVote, numTicket, idImage, note, dateVote)
VALUES (:idVote, :numTicket, :idImage, :note, :dateVote)';
$prep = $connexion->prepare($requete);
$prep->bindValue(':idVote', $res->idVote, PDO::PARAM_INT);
$prep->bindValue(':numTicket',$res->numTicket, PDO::PARAM_STR);
$prep->bindValue(':idImage', $res->idImage, PDO::PARAM_STR);
$prep->bindValue(':note', $res->note, PDO::PARAM_STR);
$prep->bindValue(':dateVote', $res->dateVote, PDO::PARAM_STR);
$ok = $prep->execute();
如果数组中可能有多个对象,那么这应该适用于该数组中的一个或多个对象
// prep the query outside the loop
// this can be reused, so dont do it each time round the loop
// and save a lot of trips to and from the database server for
// unnecessary compiles of the same query
$requete = 'INSERT INTO vote
(idVote, numTicket, idImage, note, dateVote)
VALUES (:idVote, :numTicket,:idImage, :note, :dateVote)';
$prep = $connexion->prepare($requete);
foreach ($obj->Votes as $vote ) {
$prep->bindValue(':idVote', $vote->idVote, PDO::PARAM_INT);
$prep->bindValue(':numTicket', $vote->numTicket, PDO::PARAM_STR);
$prep->bindValue(':idImage', $vote->idImage, PDO::PARAM_STR);
$prep->bindValue(':note', $vote->note, PDO::PARAM_STR);
$prep->bindValue(':dateVote', $vote->dateVote, PDO::PARAM_STR);
$ok = $prep->execute();
}
这就是你给我们看的所有数据,还是数组中有多个事件?数组中有多个事件,但只有一个,只是为了看看这是否有效。好的,根据我的回答修改了我的答案,谢谢,伙计
// prep the query outside the loop
// this can be reused, so dont do it each time round the loop
// and save a lot of trips to and from the database server for
// unnecessary compiles of the same query
$requete = 'INSERT INTO vote
(idVote, numTicket, idImage, note, dateVote)
VALUES (:idVote, :numTicket,:idImage, :note, :dateVote)';
$prep = $connexion->prepare($requete);
foreach ($obj->Votes as $vote ) {
$prep->bindValue(':idVote', $vote->idVote, PDO::PARAM_INT);
$prep->bindValue(':numTicket', $vote->numTicket, PDO::PARAM_STR);
$prep->bindValue(':idImage', $vote->idImage, PDO::PARAM_STR);
$prep->bindValue(':note', $vote->note, PDO::PARAM_STR);
$prep->bindValue(':dateVote', $vote->dateVote, PDO::PARAM_STR);
$ok = $prep->execute();
}