Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyimpan tatasusunan ke dalam pangkalan data dalam php
Apabila menggunakan PHP untuk pembangunan web, biasanya kita perlu menyimpan beberapa data dalam pangkalan data untuk kegunaan seterusnya. Jenis data yang paling biasa digunakan ialah tatasusunan.
Seterusnya, mari kita terokai cara menyimpan tatasusunan ke dalam pangkalan data.
Pertama, kita perlu mencipta jadual untuk menyimpan data tatasusunan kita. Mengambil MySQL sebagai contoh, terdapat langkah berikut:
1) Cipta pangkalan data, seperti test
.
2) Buat jadual di bawah pangkalan data, seperti array_data
, untuk menyimpan data tatasusunan kami. Pernyataan SQL berikut boleh digunakan:
CREATE TABLE `array_data` ( `id` int(11) NOT NULL AUTO_INCREMENT, `data` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Jadual mengandungi dua medan, iaitu id
dan data
. Antaranya, id
ialah kunci utama, digunakan untuk mengenal pasti secara unik sekeping data; medan data
digunakan untuk menyimpan data tatasusunan yang ingin kami simpan.
Sebelum menyimpan tatasusunan dalam pangkalan data, kita perlu menukarnya kepada rentetan. Kerana hanya data jenis rentetan boleh disimpan dalam pangkalan data. Untuk menukar tatasusunan kepada rentetan, anda boleh menggunakan fungsi serialize()
yang disediakan oleh PHP.
Sebagai contoh, kami mempunyai data tatasusunan berikut:
$data = [ 'name' => 'Tom', 'age' => 25, 'gender' => 'male' ];
Anda boleh menggunakan fungsi serialize()
untuk menukarnya menjadi rentetan:
$data_str = serialize($data);
Di kali ini, $data_str
Nilainya ialah:
a:3:{s:4:"name";s:3:"Tom";s:3:"age";i:25;s:6:"gender";s:4:"male";}
Menyimpan rentetan ke dalam pangkalan data adalah sangat mudah. Kita boleh menggunakan sambungan PDO PHP untuk menyambung ke pangkalan data dan kemudian menggunakan pernyataan yang disediakan untuk menulis data ke pangkalan data.
Kod khusus adalah seperti berikut:
try { $dsn = "mysql:host=localhost;dbname=test;charset=utf8mb4"; $username = "root"; $password = ""; $pdo = new PDO($dsn, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $data = [ 'name' => 'Tom', 'age' => 25, 'gender' => 'male' ]; $data_str = serialize($data); $stmt = $pdo->prepare("INSERT INTO array_data (data) VALUES (?)"); $stmt->bindParam(1, $data_str); $stmt->execute(); } catch (PDOException $e) { echo $e->getMessage(); }
Dalam kod di atas, kita mula-mula mencipta objek PDO, dan kemudian menggunakan fungsi prepare()
untuk mencipta pernyataan yang disediakan. Antaranya, ?
menunjukkan bahawa kedudukan semasa memerlukan parameter, dan kami menghantar rentetan untuk disimpan sebagai parameter. Akhir sekali, gunakan fungsi execute()
untuk melaksanakan pernyataan yang disediakan.
Apabila kita perlu membaca data tatasusunan dalam pangkalan data, mula-mula kita boleh membaca rentetan yang disimpan daripada pangkalan data, dan kemudian Gunakan fungsi unserialize()
untuk menukarnya kepada tatasusunan.
Kod khusus adalah seperti berikut:
try { $dsn = "mysql:host=localhost;dbname=test;charset=utf8mb4"; $username = "root"; $password = ""; $pdo = new PDO($dsn, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->query("SELECT data FROM array_data WHERE id = 1"); $data_str = $stmt->fetchColumn(); $data = unserialize($data_str); print_r($data); } catch (PDOException $e) { echo $e->getMessage(); }
Dalam kod di atas, kami menggunakan fungsi query()
untuk melaksanakan pernyataan SQL dan menggunakan fungsi fetchColumn()
untuk mendapatkan semula lajur pertama data daripada set hasil, iaitu A rentetan yang memegang data tatasusunan kami. Kemudian, gunakan fungsi unserialize()
untuk menukarnya kepada jenis tatasusunan.
Akhir sekali, gunakan fungsi print_r()
untuk mengeluarkan data tatasusunan.
Ringkasan
Dalam program PHP, menyimpan tatasusunan ke dalam pangkalan data biasanya dibahagikan kepada langkah berikut:
unserialize()
. Atas ialah kandungan terperinci Bagaimana untuk menyimpan tatasusunan ke dalam pangkalan data dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!