Php 如何将json插入mysql中的json数组?

Php 如何将json插入mysql中的json数组?,php,mysql,json,Php,Mysql,Json,我一直在尝试将JSON对象附加到JSON列中已填充的数组中。我尝试使用JSON\u ARRAY\u INSERT()函数,但没有按预期工作 我有下表: id(BIGINT) json_数据(json) 3 [{“a”:“0”、“b”:“1”}] 使用以下命令: $query="update example set json_data=JSON_ARRAY_INSERT(json_data,'$[1]', CAST(:new_json_data AS JSON)) where i

我一直在尝试将JSON对象附加到JSON列中已填充的数组中。我尝试使用
JSON\u ARRAY\u INSERT()
函数,但没有按预期工作

我有下表:

id(
BIGINT
) json_数据(
json
3
[{“a”:“0”、“b”:“1”}]
使用以下命令:

$query="update example set json_data=JSON_ARRAY_INSERT(json_data,'$[1]',
    CAST(:new_json_data AS JSON)) where id=3";

这将强制字符串输入在附加到数组之前转换为JSON文档。

默认情况下,PHP使用PDO::PARAM_STR绑定变量,因此这可能就是答案。当您在MySQL上执行查询时,请确保您的查询按预期工作,以排除该查询不工作,然后尝试删除返回字符串的json_encode。我已尝试使您的代码和问题更具可读性。在代码中使用一致的缩进和空格是其他用户的常见礼貌,在编写和调试自己的代码时也会有所帮助。我从JSON输出中删除了一个前导反斜杠引号,这看起来像是一个错误;它没有与任何其他反斜杠引号匹配。另外,作为旁注,
JSON\u ARRAY\u INSERT()
将插入的对象放在数组中的特定位置。如果您只想在最后使用它,那么您可能正在查找
JSON\u ARRAY\u APPEND(JSON\u data,'$”,CAST(:new\u JSON\u data AS JSON))
Ok,修复了这个问题。使用预先格式化的代码块将使您今后的工作更轻松。我明白了,感谢您的旁注和编辑,这是我第一次问问题,所以我的编辑很糟糕,这给了我同样的结果。我对此表示怀疑。我测试了它,它工作了。好吧,猜猜看,这工作了,我有两个相同的代码块,我只是编辑了一个我没有执行的代码。非常感谢你的回答