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.
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;
该表包含两个字段,分别是 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
, pour stocker nos données de tableau. L'instruction SQL suivante peut être utilisée : 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. 🎜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 : 🎜rrreeeprepare()
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. 🎜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!