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

Apr 23, 2023 am 10:07 AM

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. Mar 25, 2025 am 10:37 AM

La compilation JIT de PHP 8 améliore les performances en compilant le code fréquemment exécuté en code machine, bénéficiant aux applications avec des calculs lourds et en réduisant les temps d'exécution.

OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. Mar 26, 2025 pm 04:13 PM

L'article traite des 10 meilleures vulnérabilités de l'OWASP dans les stratégies PHP et d'atténuation. Les problèmes clés incluent l'injection, l'authentification brisée et les XS, avec des outils recommandés pour surveiller et sécuriser les applications PHP.

Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Mar 26, 2025 pm 04:18 PM

L'article traite de la sécurisation des téléchargements de fichiers PHP pour éviter les vulnérabilités comme l'injection de code. Il se concentre sur la validation du type de fichier, le stockage sécurisé et la gestion des erreurs pour améliorer la sécurité de l'application.

Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Mar 25, 2025 pm 03:06 PM

L'article examine la mise en œuvre d'authentification et d'autorisation robustes dans PHP pour empêcher un accès non autorisé, détaillant les meilleures pratiques et recommandant des outils d'amélioration de la sécurité.

Encryption PHP: cryptage symétrique vs asymétrique. Encryption PHP: cryptage symétrique vs asymétrique. Mar 25, 2025 pm 03:12 PM

L'article traite du cryptage symétrique et asymétrique en PHP, en comparant leur aptitude, leurs performances et leurs différences de sécurité. Le chiffrement symétrique est plus rapide et adapté aux données en vrac, tandis que l'asymétrique est utilisé pour l'échange de clés sécurisé.

Comment récupérer les données d'une base de données à l'aide de PHP? Comment récupérer les données d'une base de données à l'aide de PHP? Mar 20, 2025 pm 04:57 PM

L'article discute de la récupération des données des bases de données à l'aide de PHP, couvrant les étapes, les mesures de sécurité, les techniques d'optimisation et les erreurs communes avec des solutions. COMMANDE CHAPITRE: 159

Protection PHP CSRF: comment empêcher les attaques du CSRF. Protection PHP CSRF: comment empêcher les attaques du CSRF. Mar 25, 2025 pm 03:05 PM

L'article traite des stratégies pour prévenir les attaques du CSRF dans PHP, notamment en utilisant des jetons CSRF, des cookies de même site et une bonne gestion de session.

Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Mar 20, 2025 pm 04:55 PM

L'article traite des fonctions MySQLI_Query () et MySQLI_Fetch_assoc () en PHP pour les interactions de la base de données MySQL. Il explique leurs rôles, leurs différences et fournit un exemple pratique de leur utilisation. L'argument principal se concentre sur les avantages de l'USIN

See all articles