Технически, вие вървите по грешен път с това. 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 (".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. ПРЕДПОЛАГАМ, че вашата таблица има идентификационен номер и че ще го използвате за актуализиране или изтриване
Когато извлечете данните си, можете да 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
Това е доста елементарно, но ще ви позволи да имате произволен брой записи във вашата база данни, които я правят достъпна за търсене, индексиране, сортиране, заявка и т.н...