我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql中怎么使用php批量插入数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql中怎么使用php批量插入数据

这篇文章将为大家详细讲解有关mysql中怎么使用php批量插入数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

  假如说我有这样一个表,我想往这个表里面插入大量数据:

  CREATE TABLE IF NOT EXISTS `user_info` (

  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',

  `name` varchar(255) NOT NULL default '' COMMENT '姓名',

  `age` int(11) NOT NULL default '0' COMMENT '年龄',

  PRIMARY KEY (`id`)

  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';

  批量插入

  方法一、使用for循环插入

  在往mysql插入少量数据的时候,我们一般用for循环:

  $arr = [

  [

  'name' => 'testname1',

  'age' => 18,

  ],

  [

  'name' => 'testname2',

  'age' => 19,

  ],

  [

  'name' => 'testname3',

  'age' => 18,

  ],

  ];

  $servername = "localhost";

  $port = 3306;

  $username = "username";

  $password = "password";

  $dbname = "mytestdb";

  // 创建连接

  $conn = new mysqli($servername, $username, $password, $dbname, $port);

  // 检测连接

  if ($conn->connect_error) {

  die("connect failed: " . $conn->connect_error);

  }

  $costBegin = microtime(true);

  foreach($arr as $item) {

  $sql = sprintf("INSERT INTO user_info (name, age) VALUES ( '%s', %d);", $item['name'], (int)$item['age']);

  if ($conn->query($sql) === TRUE) {

  echo "insert success";

  } else {

  echo "Error: " . $sql . "< br>" . $conn->error;

  }

  }

  $costEnd = microtime(true);

  $cost = round($costEnd - $costBegin, 3);

  var_dump($cost);

  $conn->close();

  假如说要批量插入大量数据,如果还用for循环的办法插入是没有问题的,只是时间会比较长。对比一下插入少量数据与插入大量数据,使用上面的for循环插入耗费的时间:条数时间(单位:秒)。

  方法二、使用insert语句合并插入

  mysql里面是可以使用insert语句进行合并插入的,比如:

  INSERT INTO user_info (name, age) VALUES ('name1', 18), ('name2', 19);表示一次插入两条数据

  $arr = [

  [

  'name' => 'testname1',

  'age' => 18,

  ],

  [

  'name' => 'testname2',

  'age' => 19,

  ],

  [

  'name' => 'testname3',

  'age' => 18,

  ],

  // 此处省略

  ……

  ……

  ];

  $servername = "localhost";

  $port = 3306;

  $username = "username";

  $password = "password";

  $dbname = "mytestdb";

  // 创建连接

  $conn = new mysqli($servername, $username, $password, $dbname, $port);

  // 检测连接

  if ($conn->connect_error) {

  die("connect failed: " . $conn->connect_error);

  }

  $costBegin = microtime(true);

  if (!empty($arr)) {

  $sql = sprintf("INSERT INTO user_info (name, age) VALUES ");

  foreach($arr as $item) {

  $itemStr = '( ';

  $itemStr .= sprintf("'%s', %d", $item['name'], (int)$item['age']);

  $itemStr .= '),';

  $sql .= $itemStr;

  }

  // 去除最后一个逗号,并且加上结束分号

  $sql = rtrim($sql, ',');

  $sql .= ';';

  if ($conn->query($sql) === TRUE) {

  } else {

  echo "Error: " . $sql . "

  " . $conn->error;

  }

  }

  $costEnd = microtime(true);

  $cost = round($costEnd - $costBegin, 3);

  var_dump($cost);

  $conn->close();

  下面看一下少量数据与大量数据的时间对比。从总体时间上,可以看出insert合并插入比刚才for循环插入节约了很多时间,效果很明显条数时间(单位:秒)。

  如果你觉得数组太大,想要减少sql错误的风险,也可以使用array_chunk将数组切成指定大小的块,然后对每个块进行insert合并插入。

关于mysql中怎么使用php批量插入数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql中怎么使用php批量插入数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用java怎么向mysql数据库批量插入数据

今天就跟大家聊聊有关使用java怎么向mysql数据库批量插入数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. An
2023-06-14

MyBatis中怎么批量插入数据

在MyBatis中,可以使用foreach标签来实现批量插入数据。具体步骤如下:创建一个Mapper接口,定义一个insertBatch方法用于批量插入数据。public interface UserMapper {void insertB
MyBatis中怎么批量插入数据
2024-03-07

数据库中怎么批量插入数据

本文小编为大家详细介绍“数据库中怎么批量插入数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“数据库中怎么批量插入数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。批量插入批量插入使用 executemany(
2023-06-08

sql怎么批量插入数据

对于 sql 中的批量插入数据,提供了 4 种主要方法:1. insert into 语句 2. insert 语句与 select 3. load data infile 语句 4. bulk insert 语句(仅 microsoft
sql怎么批量插入数据
2024-05-30

怎么用shell脚本在mysql表中批量插入数据

本篇内容介绍了“怎么用shell脚本在mysql表中批量插入数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!很多时候需要在mysql表中插
2023-06-09

MySQL怎么快速批量插入1000w条数据

这篇文章主要介绍MySQL怎么快速批量插入1000w条数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!小编发现插入10000条数据用了0.9s, 插入10w条数据用了4.7s, 插入100w条数据用了58s左右,1
2023-06-14

Dictionary中怎么批量插入日志数据

本篇文章为大家展示了Dictionary中怎么批量插入日志数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。问题窥探首先,我想到的是Dictionary,对于C#中的Dictionary类相信大家都
2023-06-15

大批量数据分批批量插入或更新(Mybatis+MySQL)

大批量数据分批批量插入或更新 在MySQL数据库的前提下,插入或更新大批量数据。首先批量插入需要考虑到以下几个因素: 数据库一次可以承受多大或者多少条数据的插入批量插入是否会占用Mysql资源太久,影响系统整体使用性能代码中的集合是否会造成
2023-08-30

【mysql】向mysql数据库批量插入数据(循环)

错误插入  delimiter $$ //以delimiter来标记用$表示存储过程结束create procedure pre()//创建pre()存储方法begindeclare i int;//定义i变量set i=6001;while i<60
2021-08-13

SQLServer批量插入数据怎么实现

在SQL Server中,可以使用以下方法来实现批量插入数据:使用INSERT INTO VALUES语句来一次性插入多条数据,例如:INSERT INTO table_name (column1, column2, column3) V
SQLServer批量插入数据怎么实现
2024-04-09

编程热搜

目录