技術的には、あなたはそれで間違った方向に進んでいます。 MySQLは、各ID/VALUEを個別に保存するために使用されます。コードを変更しないために、最初にソリューションを検討しますが、次にそれを行うための「より良い」方法について説明します。
まず、JSONをSQLの一部ではなく、変数として作成する必要があります。
mysql_query("INSERT INTO text (data) VALUES (".mysql_real_escape_string(array(json_encode('id' => $uid, 'value' => 'yes'))).")");
>
代わりに
mysql_query("INSERT INTO text (data) VALUES (json_encode('id' => $uid, 'value' => yes))");
この最初の部分では、少なくとも代わりにデータを正しくmysqlに取り込むことができます。 テーブルにIDがあり、それを使用して更新または削除すると想定しています
データを取得するときに、json_decode
を実行できます $row['data']
行からデータを取得して操作します。更新するには、次のようにします。
mysql_query("UPDATE text SET data = "'.mysql_real_escape_string(json_encode($myJsonToBeData)).'" WHERE rowid = '.$myrowid)
さて、これを行う正しい方法について:
これを行う正しい方法は、次のフィールドをテーブルに含めることです:ID、JSONID、JSONVALUE、代わりにこのSQLを使用します:
SELECT * FROM text WHERE id = $rowid
INSERT INTO text VALUES(NULL, $jsonid, $jsonvalue)
UPDATE text SET jsonid = $jsonid, jsondata = $jsondata
これは非常に基本的なことですが、データベースに検索、インデックス、並べ替え、クエリなどを可能にするエントリをいくつでも含めることができます...