加入收藏 | 设为首页 | 会员中心 | 我要投稿 成都站长网 (https://www.028zz.cn/)- 科技、云开发、数据分析、内容创作、业务安全!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php怎么将数组存进数据库

发布时间:2023-10-18 11:07:14 所属栏目:PHP教程 来源:网络
导读:   本篇内容主要讲解“php怎么将数组存入数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php怎么将数组存入数据库
  本篇内容主要讲解“php怎么将数组存入数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php怎么将数组存入数据库”吧!
 
  准备数据库
 
  首先,我们需要创建一张表来存储我们的数组数据。以 MySQL 为例,有以下步骤:
 
  1)创建一个数据库,例如 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() 函数输出数组数据。
 

(编辑:成都站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章