Mysql
 sql >> база данни >  >> RDS >> Mysql

php как да съхранявам и четем json данни чрез mysql?

Технически, вие вървите по грешен път с това. 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

Това е доста елементарно, но ще ви позволи да имате произволен брой записи във вашата база данни, които я правят достъпна за търсене, индексиране, сортиране, заявка и т.н...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изчислим текущото общо в MySQL

  2. Django admin List Display + ForeignKey =Празен списък с промени

  3. Списък със съхранени процедури/функции Mysql команден ред

  4. Как да промените часовата зона на MySQL във връзка с база данни с помощта на Java?

  5. mysql първичен ключ с две колони с автоматично увеличение