在php中检索json数据:json_decode不工作?
问题描述:
我想在服务器端使用角度前端和php来更新一些内容。在php中检索json数据:json_decode不工作?
下面是使用的片断或代码:
主JS,呼吁更新:
updateinscription: function($params){
var urlphp="http://localhost/cordova/mbacly/www/php/";
var tournois={};
$http.get(urlphp+"saveinscription.php?data="+$params).success(function(data){
console.log("retour "+data);
});
这里$ params为以下JSON:
Object { user_id: "62", uname: "admin", tournois_id: "79", inscriptions_simple: "0", inscriptions_double: "1", inscriptions_mixte: "1", inscriptions_simple_serie: "Elite", inscriptions_double_serie: "A", inscriptions_mixte_serie: "B", inscriptions_double_partenaire_id: "64", 7 de plus… }
PHP saveinscription.php是以下内容:
<?php
require("config.php");
if (isset($_GET['data'])) {
echo "tato";
$json = stripslashes($_GET['data']);
echo $json;
$data = json_decode($json, true);
echo $data;
$result = $data;
switch ($data['type']) {
// case "insert":
// $query="INSERT INTO `jnew_tournois_tournois_inscriptions`(`tournois_inscriptions_uid`,`tournois_inscriptions_tid`,`tournois_inscriptions_simple`,`tournois_inscriptions_double`,`tournois_inscriptions_mixte`,`tournois_inscriptions_simple_serie`,`tournois_inscriptions_double_serie`,`tournois_inscriptions_mixte_serie`,`tournois_inscriptions_double_partenaire`,`tournois_inscriptions_mixte_partenaire`,`tournois_inscriptions_double_partenaire_id`,`tournois_inscriptions_mixte_partenaire_id`,`tournois_inscriptions_double_partenaire_club`,`tournois_inscriptions_mixte_partenaire_club`,`tournois_inscriptions_comment`) VALUES($data['uid'],$data['tid'],$data['inscriptions_simple'],$data['$inscriptions_double'],$data['$inscriptions_mixte'],'$data['serie_simple']','$data['serie_double']','$data['serie_mixte']','$data['partenaire_double']','$data['partenaire_mixte']','$data['partenaire_double_id']','$data['partenaire_mixte_id']','$data['partenaire_double_club']','$data['partenaire_mixte_club']','$data['comment']')";
// break;
case 'update':
$query = "UPDATE `jnew_tournois_tournois_inscriptions` SET tournois_inscriptions_simple=".$data['inscriptions_simple'].",";
$query.="tournois_inscriptions_double=".$data['inscriptions_double'].",";
$query.="tournois_inscriptions_mixte=".$data['inscriptions_mixte'].",";$query.="tournois_inscriptions_simple_serie='".$data['serie_simple']."',";
$query.="tournois_inscriptions_double_serie='".$data['serie_double']."',";
$query.="tournois_inscriptions_mixte_serie='".$data['serie_mixte']."',";
$query.="tournois_inscriptions_double_partenaire='".$data['partenaire_double']."',";
$query.="tournois_inscriptions_mixte_partenaire='".$data['partenaire_mixte']."',";
$query.="tournois_inscriptions_double_partenaire_id=".$data['partenaire_double_id'].",";
$query.="tournois_inscriptions_mixte_partenaire_id=".$data['partenaire_mixte_id'].",";
$query.="tournois_inscriptions_double_partenaire_club='".$data['partenaire_double_club']."',";
$query.="tournois_inscriptions_mixte_partenaire_club='".$data['partenaire_mixte_club']."',";
$query.="tournois_inscriptions_comment='".$data['$comment']."' WHERE tournois_inscriptions_id=".$data['tiid'];
$result. = $query;
break;
case "delete":
$query = "DELETE FROM `jnew_tournois_tournois_inscriptions` where tournois_inscriptions_tid=".$data['tid']." and tournois_inscriptions_uid=".$data['uid'];
break;
}
// debug.print($query);
try {
$bdd = new PDO($db_config['SGBD'] .':host='. $db_config['HOST'] .';dbname='. $db_config['DB_NAME'], $db_config['USER'], $db_config['PASSWORD'], $db_config['OPTIONS']);
$reponse = $bdd->prepare($query);
$reponse->execute();
// $arr = $reponse->fetchAll(PDO::FETCH_ASSOC);
} catch(Exception $e) {
// En cas d'erreur, on affiche un message et on arrête tout
$result.=$query . "zorro<br>" . $e->getMessage();
debut.print($result);
}
$bdd=null;
echo $result = json_encode($arr);
}
?>
我得到这个在Firefox控制台:
retour
tato[object Object]zorro<br>SQLSTATE[42000]: Syntax error or access violation: 1065 Query was emptynull
由于$query
不为空,而我的json_decode
回波就不会显示任何东西,我想什么是错在那里,但$json
似乎有一个对象,所以我想json_decode
不工作,但我不明白为什么。
任何帮助欢迎!
答
之前发送$ PARAMS您更新功能,将其转换为URL编码字符串:
encodeURIComponent(JSON.stringify($params))
谢谢你,可以完美运行! – Nightf
很好,很高兴它帮助:-) –
PS:对于未来的用户有同样的问题,请标记答案是正确的,所以它会得到绿色的复选标记:-) –