Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

php bagaimana cara menyimpan dan membaca data json melalui mysql?

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...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membubuhi keterangan bidang peningkatan otomatis MYSQL dengan anotasi JPA

  2. Apakah ada cara untuk mempertahankan hubungan db (pk/fk) dalam skenario berikut

  3. Beberapa gabungan dalam dengan beberapa tabel

  4. Bagaimana saya bisa mengimpor database dengan MySQL dari terminal?

  5. Permintaan MySQL IN sangat lambat dengan subquery tetapi cepat dengan nilai eksplisit