PHP PDO无法在数据库中获取json值

时间:2016-04-22 14:36:25

标签: php mysql json pdo

我尝试使用pdo将值存储在数据库中。 但是,不知道为什么价值似乎无法回应它。

这是我的代码:

    $_GET['id']='138b39bbef558cf44b3d222a6fb4d6b6';
        $query3 = $conn->prepare("SELECT id, MAX(time),answer FROM `answer` where nodes_uuid = :nodeuuid and user_id = 101");
        $query3->bindValue(':nodeuuid', $_GET['id'], PDO::PARAM_STR); 
        $query3->execute(); 
$questionCorrectAnswer = $query3->fetch(); 
        echo $questionCorrectAnswer['answer'];

表:

    id         MAX(time)                  answer
----------    -------------------        ------------ 
    40        2015-02-25 18:18:53        [{"topicId":"1590","ans":["6032"]},"topicId":"1593","ans":["8122"]},{"topicId":"1598","ans":["6064"]},{"topicId":"1601","ans":["6073"]}]

2 个答案:

答案 0 :(得分:1)

结果:

array(6) { ["id"]=> NULL [0]=> NULL ["MAX(time)"]=> NULL [1]=> NULL ["answer"]=> NULL [2]=> NULL }
您收到的

表示您的查询未返回任何记录。在普通查询中,您将获得一个空集,但是,因为您使用的是聚合函数,所以当查询未选择任何记录时,您将获得所有空值。此处的问题是您的WHERE子句可能会删除表中的所有记录。

答案 1 :(得分:-1)

我认为这里的错误是你得到一个未定义的索引错误。你可以尝试交换:

$questionCorrectAnswer = $query3->fetch();

有关

$questionCorrectAnswer = $query3->fetch(PDO::FETCH_OBJ);

而不是

questionCorrectAnswer['answer'];

我建议尝试

questionCorrectAnswer->answer;

此外,当您存储Json对象时,它可能会支付Print_r($ foo)或Var_Dump($ foo),只是因为有一个Array to String转换失败。