PHP mysql json_set

时间:2017-07-06 12:42:23

标签: php mysql sql json set

我遇到以下问题:我有一个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 :( ';
}

1 个答案:

答案 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);
}