您可以用这个查询验证您的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"}]