我在将结果集转换为JSON时找到了this question
我对使用这个函数很感兴趣(这就是我一开始搜索并找到这个帖子的原因),但是当我尝试它时,没有得到任何结果。
页面上提供的答案表明,您需要使用该函数的最小mySQL版本号(5.7)。
所以我的问题是:
发布于 2019-02-20 20:38:55
可以使用以下查询验证您的MySQL服务器版本:
SELECT VERSION();如果使用JSON_OBJECT(),结果将作为字符串返回给PDO,该字符串碰巧包含JSON格式的结果。
$stmt = $pdo->prepare("SELECT JSON_OBJECT('id', id, 'name', name, 'age', age) as doc FROM person");
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($results);输出:
array(1) {
  [0]=>
  array(1) {
    ["doc"]=>
    string(37) "{"id": 1, "age": 14, "name": "Harry"}"
  }
}如果MySQL不支持JSON_OBJECT(),您可以将一个常规的结果集作为一个关联数组,然后使用json_encode()之类的PHP函数将该数组转换为JSON。
$stmt = $pdo->prepare("SELECT id, name, age FROM person");
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$doc = json_encode($results);
echo $doc . "\n";输出:
[{"id":"1","name":"Harry","age":"14"}]https://stackoverflow.com/questions/54794814
复制相似问题