Wenn wir PHP für die Webentwicklung verwenden, müssen wir normalerweise einige Daten für die spätere Verwendung in der Datenbank speichern. Der am häufigsten verwendete Datentyp ist ein Array.
Als nächstes wollen wir untersuchen, wie man ein Array in der Datenbank speichert.
Zuerst müssen wir eine Tabelle erstellen, um unsere Array-Daten zu speichern. Am Beispiel von MySQL gibt es die folgenden Schritte:
1) Erstellen Sie eine Datenbank, z. B. test
. test
。
2)在该数据库下创建一张表,例如 array_data
,用于存储我们的数组数据。可以采用以下的 SQL 语句:
CREATE TABLE `array_data` ( `id` int(11) NOT NULL AUTO_INCREMENT, `data` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
该表包含两个字段,分别是 id
和 data
。其中,id
是主键,用于唯一标识一条数据;data
字段用于存储我们要存储的数组数据。
在将数组存储到数据库中之前,我们需要将它转化为字符串。因为数据库中只能存储字符串类型的数据。将数组转化为字符串可以使用 PHP 提供的 serialize()
函数。
例如,我们有以下数组数据:
$data = [ 'name' => 'Tom', 'age' => 25, 'gender' => 'male' ];
可以使用 serialize()
函数将其转化为字符串:
$data_str = serialize($data);
此时,$data_str
的值为:
a:3:{s:4:"name";s:3:"Tom";s:3:"age";i:25;s:6:"gender";s:4:"male";}
将字符串存入数据库就非常简单了。我们可以使用 PHP 的 PDO 扩展连接到数据库,然后使用预处理语句将数据写入数据库。
具体的代码如下:
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(); }
以上代码中,我们首先创建了一个 PDO 对象,然后使用 prepare()
函数来创建一个预处理语句。其中,?
表示当前位置需要一个参数,我们将要存储的字符串作为参数传入。最后,使用 execute()
函数来执行预处理语句。
在需要读取数据库中的数组数据时,我们可以首先从数据库中读取存储的字符串,然后使用 unserialize()
函数将其转化为数组。
具体代码如下:
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(); }
以上代码中,我们使用 query()
函数来执行 SQL 语句,并使用 fetchColumn()
函数从结果集中取出第一列数据,即保存我们的数组数据的字符串。然后,使用 unserialize()
函数将其转换为数组类型。
最后,使用 print_r()
函数输出数组数据。
总结
在 PHP 程序中,将数组存入数据库通常分为以下步骤:
unserialize()
array_data
, um unsere Array-Daten zu speichern. Die folgende SQL-Anweisung kann verwendet werden: id
und data
. Unter diesen ist id
der Primärschlüssel, der zur eindeutigen Identifizierung eines Datenelements verwendet wird; das Feld data
wird zum Speichern der Array-Daten verwendet, die wir speichern möchten. 🎜serialize()
verwenden. 🎜🎜Zum Beispiel haben wir die folgenden Array-Daten: 🎜rrreee🎜Sie können die Funktion serialize()
verwenden, um sie in eine Zeichenfolge umzuwandeln: 🎜rrreee🎜Zu diesem Zeitpunkt der Wert von $data_str
Für: 🎜rrreeeprepare()
, um eine vorbereitete Anweisung zu erstellen. Darunter bedeutet ?
, dass die aktuelle Position einen Parameter erfordert und wir die zu speichernde Zeichenfolge als Parameter übergeben. Verwenden Sie abschließend die Funktion execute()
, um die vorbereitete Anweisung auszuführen. 🎜unserialize() verwenden. Die Funktion
wandelt es in ein Array um. 🎜🎜Der spezifische Code lautet wie folgt: 🎜rrreee🎜Im obigen Code verwenden wir die Funktion query()
, um die SQL-Anweisung auszuführen, und verwenden die Funktion fetchColumn()
Funktion zum Abrufen der ersten Spalte aus der Ergebnismenge. Spaltendaten, die Zeichenfolge, die unsere Array-Daten enthält. Verwenden Sie dann die Funktion unserialize()
, um es in einen Array-Typ zu konvertieren. 🎜🎜Verwenden Sie abschließend die Funktion print_r()
, um die Array-Daten auszugeben. 🎜🎜Zusammenfassung🎜🎜In PHP-Programmen ist das Speichern von Arrays in der Datenbank normalerweise in die folgenden Schritte unterteilt: 🎜🎜🎜Bereiten Sie die Datenbank vor und erstellen Sie eine Tabelle mit einem Feld vom Typ Text. 🎜🎜Array in String konvertieren. 🎜🎜Speichern Sie die Zeichenfolge in der Datenbank. 🎜🎜Lesen Sie den String aus der Datenbank und konvertieren Sie ihn mit der Funktion unserialize()
in ein Array. 🎜🎜Das obige ist der detaillierte Inhalt vonSo speichern Sie ein Array in einer Datenbank in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!