Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用JSON_SET()更新JSON文档的部分,而不是将整个文档设置为新_Php_Mysql_Json - Fatal编程技术网

Php 使用JSON_SET()更新JSON文档的部分,而不是将整个文档设置为新

Php 使用JSON_SET()更新JSON文档的部分,而不是将整个文档设置为新,php,mysql,json,Php,Mysql,Json,我想更新MySQL数据库表中JSON文档的一部分 数据库中的字段名:jdata 问题 我不想将其设置为jdata='{{u whatever}', 因为我会松开钥匙 I需要保留现有密钥(例如key1,key3) 并且仅将key2设置为其新的指定值999 JSON文档 PHP/MySQL 使用这样的完整路径:JSON_SET(jdata,'$.calculation.key2',999)在这里是没有选择的,因为原始的JSON文档要复杂得多,我必须迭代许多键。想象一下,有30个键/值对,需要更新其中

我想更新MySQL数据库表中JSON文档的一部分

数据库中的字段名:
jdata

问题 我不想将其设置为
jdata='{{u whatever}'
, 因为我会松开钥匙

I需要保留现有密钥(例如
key1
key3
) 并且仅将
key2
设置为其新的指定值
999

JSON文档 PHP/MySQL 使用这样的完整路径:
JSON_SET(jdata,'$.calculation.key2',999)
在这里是没有选择的,因为原始的JSON文档要复杂得多,我必须迭代许多键。想象一下,有30个键/值对,需要更新其中的29个


希望任何人都能理解我的闲话。。。提前谢谢

悲哀!第一次没人说什么:(你知道吗?
{
  "calculation":{
    "key1": 100,
    "key2": 200,
    "key3": 300
  }
}
$a = json_encode(['key2' => 999], JSON_UNESCAPED_SLASHES);
$sql =
"   UPDATE  svtr.auftrag
    SET     jdata = JSON_SET(jdata, '$.calculation', '{$a}')
    WHERE[...]
";