Secara teknis, Anda salah jalan dengan itu. MySQL digunakan untuk menyimpan setiap ID/VALUE Anda secara terpisah. Demi TIDAK mengubah kode Anda, kami akan melihat solusi Anda terlebih dahulu, tetapi kemudian saya akan menjelaskan cara yang "lebih baik" untuk melakukannya.
Pertama, Anda perlu menjadikan JSON Anda sebagai variabel, bukan bagian dari SQL Anda:
mysql_query("INSERT INTO text (data) VALUES (".mysql_real_escape_string(array(json_encode('id' => $uid, 'value' => 'yes'))).")");
bukannya
mysql_query("INSERT INTO text (data) VALUES (json_encode('id' => $uid, 'value' => yes))");
Bagian pertama ini akan memungkinkan Anda untuk setidaknya memasukkan data dengan benar ke mysql. Saya MENANGGUNG tabel Anda memiliki ID dan Anda akan menggunakannya untuk memperbarui atau menghapus
Saat mengambil data, Anda dapat json_decode
$row['data']
untuk mendapatkan kembali data Anda dari baris dan bekerja dengannya. Untuk memperbaruinya, lakukan saja:
mysql_query("UPDATE text SET data = "'.mysql_real_escape_string(json_encode($myJsonToBeData)).'" WHERE rowid = '.$myrowid)
Sekarang, untuk cara yang BENAR melakukannya:
Cara yang tepat untuk melakukannya adalah dengan memasukkan bidang-bidang ini ke dalam tabel Anda:ID, JSONID, JSONVALUE dan gunakan SQL ini sebagai gantinya:
SELECT * FROM text WHERE id = $rowid
INSERT INTO text VALUES(NULL, $jsonid, $jsonvalue)
UPDATE text SET jsonid = $jsonid, jsondata = $jsondata
Ini cukup mendasar, tetapi akan memungkinkan Anda untuk memiliki sejumlah entri dalam database Anda yang membuatnya dapat dicari, diindeks, diurutkan, dapat ditanyakan, dll...