Maison > développement back-end > Problème PHP > Comment stocker un tableau dans une base de données en php

Comment stocker un tableau dans une base de données en php

PHPz
Libérer: 2023-04-23 13:45:12
original
1497 Les gens l'ont consulté

Lorsque nous utilisons PHP pour le développement Web, nous devons généralement stocker certaines données dans la base de données pour une utilisation ultérieure. Le type de données le plus couramment utilisé est un tableau.

Ensuite, explorons comment stocker un tableau dans la base de données.

  1. Préparez la base de données

Tout d'abord, nous devons créer une table pour stocker les données de notre tableau. En prenant MySQL comme exemple, il y a les étapes suivantes :

1) Créez une base de données, telle que 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;
Copier après la connexion

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

  1. 将数组转化为字符串

在将数组存储到数据库中之前,我们需要将它转化为字符串。因为数据库中只能存储字符串类型的数据。将数组转化为字符串可以使用 PHP 提供的 serialize() 函数。

例如,我们有以下数组数据:

$data = [
    'name' => 'Tom',
    'age' => 25,
    'gender' => 'male'
];
Copier après la connexion

可以使用 serialize() 函数将其转化为字符串:

$data_str = serialize($data);
Copier après la connexion

此时,$data_str 的值为:

a:3:{s:4:"name";s:3:"Tom";s:3:"age";i:25;s:6:"gender";s:4:"male";}
Copier après la connexion
  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();
}
Copier après la connexion

以上代码中,我们首先创建了一个 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();
}
Copier après la connexion

以上代码中,我们使用 query() 函数来执行 SQL 语句,并使用 fetchColumn() 函数从结果集中取出第一列数据,即保存我们的数组数据的字符串。然后,使用 unserialize() 函数将其转换为数组类型。

最后,使用 print_r() 函数输出数组数据。

总结

在 PHP 程序中,将数组存入数据库通常分为以下步骤:

  1. 准备好数据库,并创建一张含有一个 text 类型字段的表。
  2. 将数组转化为字符串。
  3. 将字符串存入数据库。
  4. 从数据库中读取字符串,并使用 unserialize()
  5. 2) Créez une table sous la base de données, telle que array_data, pour stocker nos données de tableau. L'instruction SQL suivante peut être utilisée :
rrreee🎜La table contient deux champs, à savoir id et data. Parmi eux, id est la clé primaire, utilisée pour identifier de manière unique une donnée ; le champ data est utilisé pour stocker les données du tableau que nous souhaitons stocker. 🎜
    🎜Convertir le tableau en chaîne🎜🎜🎜Avant de stocker le tableau dans la base de données, nous devons le convertir en chaîne. Parce que seules les données de type chaîne peuvent être stockées dans la base de données. Pour convertir un tableau en chaîne, vous pouvez utiliser la fonction serialize() fournie par PHP. 🎜🎜Par exemple, nous avons les données du tableau suivant : 🎜rrreee🎜Vous pouvez utiliser la fonction serialize() pour la convertir en chaîne : 🎜rrreee🎜À ce moment, la valeur de $data_str Pour : 🎜rrreee
      🎜Écrire des données dans la base de données🎜🎜🎜Stocker une chaîne dans la base de données est très simple. Nous pouvons utiliser l'extension PDO de PHP pour nous connecter à la base de données, puis utiliser des instructions préparées pour écrire des données dans la base de données. 🎜🎜Le code spécifique est le suivant : 🎜rrreee🎜Dans le code ci-dessus, nous créons d'abord un objet PDO, puis utilisons la fonction prepare() pour créer une instruction préparée. Parmi eux, ? signifie que la position actuelle nécessite un paramètre, et nous transmettons la chaîne à stocker en tant que paramètre. Enfin, utilisez la fonction execute() pour exécuter l'instruction préparée. 🎜
        🎜Lire les données du tableau de la base de données🎜🎜🎜Lorsque nous avons besoin de lire les données du tableau dans la base de données, nous pouvons d'abord lire la chaîne stockée dans la base de données, puis utiliser unserialize ( ) le convertit en tableau. 🎜🎜Le code spécifique est le suivant : 🎜rrreee🎜Dans le code ci-dessus, nous utilisons la fonction query() pour exécuter l'instruction SQL, et utilisons la fonction fetchColumn() fonction pour récupérer la première colonne du jeu de résultats Column data, la chaîne contenant les données de notre tableau. Ensuite, utilisez la fonction unserialize() pour la convertir en type tableau. 🎜🎜Enfin, utilisez la fonction print_r() pour afficher les données du tableau. 🎜🎜Résumé🎜🎜Dans les programmes PHP, le stockage des tableaux dans la base de données est généralement divisé en les étapes suivantes : 🎜🎜🎜Préparer la base de données et créer une table avec un champ de type texte. 🎜🎜Convertir le tableau en chaîne. 🎜🎜Enregistrez la chaîne dans la base de données. 🎜🎜Lisez la chaîne de la base de données et convertissez-la en tableau à l'aide de la fonction unserialize(). 🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal