Rumah > Artikel > pembangunan bahagian belakang > Cara Menyimpan Tatasusunan PHP dengan Berkesan dalam MySQL: Patutkah Anda Mensiri atau Mencari Alternatif?
Serialization dan Deserialization Tatasusunan PHP dalam MySQL
Menyimpan tatasusunan data dalam satu medan MySQL memerlukan pertimbangan yang teliti. Pensirian dan pensirian menawarkan penyelesaian yang berpotensi, tetapi terdapat had dan implikasi yang perlu diambil perhatian.
Pendekatan Alternatif untuk Menyimpan Tatasusunan
Secara amnya disyorkan untuk mengelak daripada menyimpan tatasusunan dalam bidang tunggal. Sebaliknya, pertimbangkan untuk menstruktur semula model data anda untuk mengasingkan setiap elemen tatasusunan dalam lajur atau barisnya sendiri. Ini membolehkan pertanyaan dan pengurusan data yang lebih cekap.
Pensirian dan Pensirian
Jika anda mesti menyimpan tatasusunan dalam satu medan, pensirilan dan penyahsiran menyediakan cara untuk menukar tatasusunan ke dalam rentetan dan belakang. Fungsi serialize() menukar tatasusunan menjadi rentetan, yang kemudiannya boleh disimpan dalam pangkalan data. Apabila mendapatkan semula data, fungsi unserialize() menukar rentetan kembali ke dalam tatasusunan.
Had Pensirian
Sementara pensiri dan penyahsiran membenarkan anda menyimpan dan mendapatkan tatasusunan , terdapat kelemahan:
Contoh Penggunaan
Pertimbangkan tatasusunan berikut:
<code class="php">$a = array( 1 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), 2 => array( 'a' => 1, 'b' => 2, 'c' => 3 ) );</code>
Untuk simpan tatasusunan ini ke pangkalan data, anda boleh gunakan:
<code class="php">$serialized_data = serialize($a); $query = "INSERT INTO table (data) VALUES ('$serialized_data')";</code>
Untuk mendapatkan semula tatasusunan daripada pangkalan data, anda boleh gunakan:
<code class="php">$query = "SELECT data FROM table WHERE id = 1"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $data = unserialize($row['data']);</code>
JSON Alternatif
Alternatif kepada penyirian ialah menggunakan pengekodan dan penyahkodan JSON. Fungsi json_encode() menukar tatasusunan kepada rentetan JSON, manakala fungsi json_decode() menukarkan semula rentetan JSON kepada tatasusunan.
<code class="php">$json_data = json_encode($a); $query = "INSERT INTO table (data) VALUES ('$json_data')";</code>
<code class="php">$query = "SELECT data FROM table WHERE id = 1"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $data = json_decode($row['data']);</code>
JSON menyediakan kefungsian yang serupa dengan siri tetapi secara amnya lebih fleksibel dan cekap.
Atas ialah kandungan terperinci Cara Menyimpan Tatasusunan PHP dengan Berkesan dalam MySQL: Patutkah Anda Mensiri atau Mencari Alternatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!