【发布时间】:2021-11-05 02:42:25
【问题描述】:
我有 MySQL 5.7 和一个带有 PDO 的查询:
$data['id'] = 1;
$data['key'] = 'new_field';
$data['value'] = 1;
$query= "
UPDATE `table`
SET `data` = JSON_MERGE_PATCH(`data`, JSON_OBJECT(:key, :value))
WHERE `id` = :id
";
...
prepare($query);
execute($data);
但之后我有:
| id | data |
|---|---|
| 1 | {"old_field": 2, "new_field": "1"} |
为什么我的新值是字符串类型? 预期表:
| id | data |
|---|---|
| 1 | {"old_field": 2, "new_field": 1} |
我在不使用 PDO(JSON_OBJECT('new_field', 1)) 的情况下取得了成功,但我有一个使用占位符的字符串类型。
【问题讨论】:
-
JSON_MERGE_PATCH(data, JSON_OBJECT(:key, :value + 0)) -
请给我们看PHP代码。
标签: php mysql pdo mysql-json