Heim >Backend-Entwicklung >PHP-Problem >So speichern Sie ein Array in einer Datenbank in PHP

So speichern Sie ein Array in einer Datenbank in PHP

PHPz
PHPzOriginal
2023-04-23 10:07:441491Durchsuche

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.

  1. Bereiten Sie die Datenbank vor

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;

该表包含两个字段,分别是 iddata。其中,id 是主键,用于唯一标识一条数据;data 字段用于存储我们要存储的数组数据。

  1. 将数组转化为字符串

在将数组存储到数据库中之前,我们需要将它转化为字符串。因为数据库中只能存储字符串类型的数据。将数组转化为字符串可以使用 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";}
  1. 将数据写入数据库

将字符串存入数据库就非常简单了。我们可以使用 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() 函数来执行预处理语句。

  1. 从数据库中读取数组数据

在需要读取数据库中的数组数据时,我们可以首先从数据库中读取存储的字符串,然后使用 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 程序中,将数组存入数据库通常分为以下步骤:

  1. 准备好数据库,并创建一张含有一个 text 类型字段的表。
  2. 将数组转化为字符串。
  3. 将字符串存入数据库。
  4. 从数据库中读取字符串,并使用 unserialize()
  5. 2) Erstellen Sie eine Tabelle unter der Datenbank, z. B. array_data, um unsere Array-Daten zu speichern. Die folgende SQL-Anweisung kann verwendet werden:
rrreee🎜Die Tabelle enthält zwei Felder, nämlich 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. 🎜
    🎜Array in String konvertieren🎜🎜🎜Bevor wir das Array in der Datenbank speichern, müssen wir es in einen String konvertieren. Denn in der Datenbank können nur Daten vom Typ String gespeichert werden. Um ein Array in einen String umzuwandeln, können Sie die von PHP bereitgestellte Funktion 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: 🎜rrreee
      🎜Daten in die Datenbank schreiben🎜🎜🎜Das Speichern einer Zeichenfolge in der Datenbank ist sehr einfach. Wir können die PDO-Erweiterung von PHP verwenden, um eine Verbindung zur Datenbank herzustellen und dann vorbereitete Anweisungen verwenden, um Daten in die Datenbank zu schreiben. 🎜🎜Der spezifische Code lautet wie folgt: 🎜rrreee🎜Im obigen Code erstellen wir zuerst ein PDO-Objekt und verwenden dann die Funktion prepare(), 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. 🎜
        🎜Array-Daten aus der Datenbank lesen🎜🎜🎜Wenn wir die Array-Daten in der Datenbank lesen müssen, können wir zuerst die gespeicherte Zeichenfolge aus der Datenbank lesen und dann 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn