社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

尝试在amazon aws的mysql数据库上使用json_对象函数

ControlAltDel • 5 年前 • 1636 次点击  

我发现 this question 关于将结果集转换为json

我对使用这个函数感兴趣(这就是为什么我在搜索和找到这篇文章一开始),但当我尝试它,没有结果回来。

提供的页面上的答案指出,使用此函数需要的MySQL版本号(5.7)最少。

所以我的问题是:

  1. 有没有办法从rds屏幕(或其他方式)找到我设置数据库的mysql版本号?

  2. 假设该版本是兼容的,那么我的php pdo查询的工作方式是否完全相同?如果没有,是否有其他方法可以使用或不使用php pdo来实现这一点?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43827
 
1636 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Bill Karwin
Reply   •   1 楼
Bill Karwin    6 年前

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