dongtanlin0765 2015-08-15 22:38
浏览 43

在php中检索json数据:json_decode无法正常工作?

I'm trying to update some contents using angular on front-end and php in server side.

Here are the snippet or code used :

in main js, call for update :

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);

    });

here $params is the following 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 is the following :

    <?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);
    }
    ?>

I get this in firefox console :

retour 
tato[object Object]zorro<br>SQLSTATE[42000]: Syntax error or access violation: 1065 Query was emptynull

As $query is not null and my echo of json_decode doesn't show anything, I guess something is wrong there, but $json seems to have an object, so I guess json_decode is not working, but I can't figure out why.

Any help welcome !

  • 写回答

1条回答 默认 最新

  • dongwei8440 2015-08-15 22:49
    关注

    Before sending $params to your update function, convert it to an url encoded string:

    encodeURIComponent(JSON.stringify($params))
    
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题