Technicky jdeš s tím špatným směrem. MySQL se používá k samostatnému uložení každého vašeho ID/HODNOTY. Abychom NEMĚNILI váš kód, nejprve se podíváme na vaše řešení, ale pak vám vysvětlím „lepší“ způsob, jak to udělat.
Nejprve musíte vytvořit svůj JSON jako proměnnou, nikoli jako součást vašeho SQL:
mysql_query("INSERT INTO text (data) VALUES (".mysql_real_escape_string(array(json_encode('id' => $uid, 'value' => 'yes'))).")");
místo
mysql_query("INSERT INTO text (data) VALUES (json_encode('id' => $uid, 'value' => yes))");
Tato první část vám umožní alespoň místo toho správně data do mysql. Předpokládám, že vaše tabulka má ID a že ji budete používat k aktualizaci nebo mazání
Při načítání dat můžete json_decode
$row['data']
získat zpět svá data z řádku a pracovat s nimi. Chcete-li jej aktualizovat, postupujte takto:
mysql_query("UPDATE text SET data = "'.mysql_real_escape_string(json_encode($myJsonToBeData)).'" WHERE rowid = '.$myrowid)
Nyní, SPRÁVNÝ způsob, jak to udělat:
Správným způsobem, jak to udělat, by bylo mít v tabulce tato pole:ID, JSONID, JSONVALUE a místo toho použít tento SQL:
SELECT * FROM text WHERE id = $rowid
INSERT INTO text VALUES(NULL, $jsonid, $jsonvalue)
UPDATE text SET jsonid = $jsonid, jsondata = $jsondata
To je docela základní, ale umožní vám to mít ve vaší databázi libovolný počet záznamů, které umožňují vyhledávat, indexovat, třídit, dotazovat atd...