更新存储在数据库中的JSON数据

时间:2016-12-31 18:04:09

标签: php json

我有一个存储在变量中的JSON数据,该变量是特定用户的一组权限。但是,JSON数据不存储在文件中,而是存储在数据库列中。

我试图寻找一种更新权限的方法(无论是真还是假),但到目前为止我还没有运气。目前,我有一些效果;

原始JSON数据......

{
    "permissions": {
        "permission_1": true,
        "permission_2": false
    }
}

将其从数据库中删除......

$permissions = json_decode($data, true);

我如何(使用PHP)更新JSON数据,将更新权限2更新为true?我从数据库出来时使用json_decode()并将其放入数组中,但仅限于使用它。在此之后,我失去了如何更新价值。

1 个答案:

答案 0 :(得分:0)

按顺序:

  • 从数据库中提取列数据。

    "SELECT column FROM table WHERE id = 1 LIMIT 1"       
    
  • JSON_decode将数据转换为一组PHP值/ objects / arrays / whatever。

    $array = json_decode($OutputRow['column'],true);
    
  • 更新您需要更新的值。

    $array['permissions']['permission2'] = true;
    
  • 使用JSON_encode重新编译为JSON字符串。

    $data = json_encode($array);
    
  • 使用新的JSON_encoded字符串更新数据库(SQL?)。

    "UPDATE table SET column = :data WHERE id = 1 LIMIT 1"
    

我的示例通过引用使用PDO和MySQL,但没有详细介绍数据库交互,因为您没有提供有关如何访问数据库的任何详细信息。它只是 一个关于如何列出所列要点的粗略范例。