2016-12-31 20 views
0

特定のユーザーの権限のセットである変数に格納されているJSONデータがあります。ただし、JSONデータはファイルに格納されず、データベース列にのみ格納されます。データベースに格納されているJSONデータを更新します。

私は許可を更新する方法(真か偽か)を探してみましたが、これまで運がなかった。現時点では、私は何かの効果があります。 I(使用してPHPが)にJSONデータを更新するにはどうすればよい

生のJSONデータ

...

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

データベースからそれを取得中...

$permissions = json_decode($data, true); 

たとえば、権限2をtrueに更新しますか?私はjson_decode()を使用しています。データベースから出てそれを配列に入れますが、それはそれを使うためだけです。その後、私は値を更新する方法について迷っています。ために

+0

データベース内の値を更新するには、SQL(前提条件)クエリを実行する必要があります。この質問は1つの正解には広すぎますが、あなたは正しい道を歩いています。 'json_encode'、' json_decode'、 'serialize'、' unserialize'を見てください。データを更新したら、クエリを実行してDBに保存することができます。 –

+0

私はマーティンの答えの後だった。私が必要としたのは、変数を更新してJSONデータを再度エンコードすることでした。他のすべての質問は、外部ファイルを更新するシナリオを使用しました。 –

答えて

0

:データベースから

  • 抽出列データ。 PHP値/オブジェクト/配列のセットに

    "SELECT column FROM table WHERE id = 1 LIMIT 1"  
    
  • JSON_decodeデータ/どんな。

    $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を使用しますが、あなたがあなたのデータベースに到達しているかについてどのような詳細は与えられていませんでしたように、データベースとの対話についての詳細には触れません。それはのみのポイントを行う方法の野球の例です。

+0

かなりシンプルだが、これを理解できなかった。ありがとうございました。 –

+0

@DanielJamesいつでもわかりました。心配ない。 ':-)' – Martin

関連する問題