【发布时间】:2021-03-28 07:16:34
【问题描述】:
我在 MySQL 表中有一个 JSON 列(称为 json_col):
{'a':9, 'b':8, 'c':7}
我想选择列“json_col”及其每个键和值,并将其作为 array() 返回,以便我可以在 PHP 中处理它。
我该怎么做?
我试过 JSON_EXTRACT() 但这需要我指定 json 元素,它只返回相应的值。
这是“我的努力”:
$query_string = '
SELECT JSON_EXTRACT( json_col, "$.a" )
FROM settings
WHERE id = "4"
LIMIT 1
';
$result = mysqli_query( $GLOBALS['db_link'], $query_string ) or die( mysqli_error( $GLOBALS['db_link'] ) );
$row = mysqli_fetch_row( $result );
mysqli_free_result( $result );
当我回显 $row[0] 时,我得到“a”的值为 9!
【问题讨论】:
-
向我们展示您的努力以及您确切遇到问题的地方。您是否遇到选择 json 列的问题?或者您是否在从数据库中成功加载值后将 json 字符串转换为数组时遇到问题?
-
当然@Rafal!更新了我的 OQ!
-
执行 sql
SELECT json_col FROM settings WHERE id = "4" LIMIT 1会给你'{'a':9, 'b':8, 'c':7}',对吗? -
正是@Rafal。在早期的开发步骤中这样做了。所以也许我需要然后使用 PHP 将 JSON 数据分解成一个数组()......对吗?我在想并希望也许这个数组可以由 MySQL 生成