我遇到以下问题:我有一个mysql数据库(5.7)。我想更新一个json-data-entry。
这就是我在数据库中的数据的样子:
{
"version": {
"0": {
"value": "1.9.6.81"
}
}
}
当我尝试直接从命令行使用SQL更新此字段时,没有问题:
update item set elements = JSON_SET(elements, '$."version"."0"."value"', "1.9.8.40") where name like 'Client XZY';
但是当我尝试使用PHP时,我对混合引号和双引号有一些问题。
$connection = new mysqli('localhost', 'user', 'password');
$updateSql = "update item set elements = JSON_SET(elements, '$."version'.'0'.'value"', '1.9.8.20') where name like 'Client XYZ';';
if($connection->query($updateSql) === TRUE){
echo 'good :) ';
}
else{
echo 'bad :( ';
}
答案 0 :(得分:0)
让它运作
$connection = new mysqli('localhost', 'root', 'xxxxx');
mysqli_select_db($connection,"MYSQL5");
$updateSql = "UPDATE item SET elements = JSON_SET(elements, '$.\"version\".\"0\".\"value\"', '1.9.8.40') WHERE name LIKE 'lient XYZ';";
if($connection->query($updateSql) === TRUE){
echo 'good :)';
}
else{
printf("Errormessage: %s\n", $connection->error);
}