首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试着在Amazon上的JSON_OBJECT数据库上使用mySQL函数

试着在Amazon上的JSON_OBJECT数据库上使用mySQL函数
EN

Stack Overflow用户
提问于 2019-02-20 20:35:03
回答 1查看 654关注 0票数 1

我在将结果集转换为JSON时找到了this question

我对使用这个函数很感兴趣(这就是我一开始搜索并找到这个帖子的原因),但是当我尝试它时,没有得到任何结果。

页面上提供的答案表明,您需要使用该函数的最小mySQL版本号(5.7)。

所以我的问题是:

  1. 是否有方法从RDS屏幕(或其他方式)找到我设置数据库的MySQL版本号?
  2. 假设该版本是兼容的,那么我的PHP查询的工作方式是否完全相同?如果没有,是否有另一种使用或不使用PDO的方法?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 20:38:55

可以使用以下查询验证您的MySQL服务器版本:

代码语言:javascript
运行
复制
SELECT VERSION();

如果使用JSON_OBJECT(),结果将作为字符串返回给PDO,该字符串碰巧包含JSON格式的结果。

代码语言:javascript
运行
复制
$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);

输出:

代码语言:javascript
运行
复制
array(1) {
  [0]=>
  array(1) {
    ["doc"]=>
    string(37) "{"id": 1, "age": 14, "name": "Harry"}"
  }
}

如果MySQL不支持JSON_OBJECT(),您可以将一个常规的结果集作为一个关联数组,然后使用json_encode()之类的PHP函数将该数组转换为JSON。

代码语言:javascript
运行
复制
$stmt = $pdo->prepare("SELECT id, name, age FROM person");
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$doc = json_encode($results);
echo $doc . "\n";

输出:

代码语言:javascript
运行
复制
[{"id":"1","name":"Harry","age":"14"}]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54794814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档