在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

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

118次阅读
没有评论

共计 2157 个字符,预计需要花费 6 分钟才能阅读完成。

自动写代码机器人,免费开通

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

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

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 批量插入数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计2157字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 精品欧美| 中文字幕在线观看一区二区三区 | 精品一区二区三区电影 | 人人妻人人澡人人爽精品欧美 | 亚洲一区 日韩精品 中文字幕 | 雯雯在工地被灌满精在线视频播放 | 97精品人妻一区二区三区香蕉 | 狠狠亚洲丁香综合久久 | 在线观看国产精品电影 | 日韩黄色小说 | 天堂资源官网在线资源 | 成人福利在线免费观看 | 一本色道久久88加勒比—综合 | 欧美人与性动交g欧美精器 欧美人与性动交α欧美精品 | 欧美乱妇高清无乱码 | 丰满熟妇人妻中文字幕 | 久久久免费精品 | 国产猛男猛女超爽免费视频 | 免费一级毛毛片 | 日本久久久久亚洲中字幕 | va亚洲va欧美va国产综合 | 久久精品综合一区二区三区 | 亚洲成 人a影院青久在线观看 | 亚洲精品专区一区二区欧美 | 波多野结衣乳巨码无在线观看 | av免费不卡国产观看 | 精品无码一区二区三区电影 | 特级淫片国产免费高清视频 | 久久女同互慰一区二区三区 | 五月丁香啪啪 | 99精彩视频 | 国产日韩一区二区三区在线播放 | 国产午夜久久影院 | 国产综合视频 | 饥渴的熟妇张开腿呻吟视频 | 在线播放葵千惠激烈潮催 | 色最快国产 | 一级做a爰片久久免费 | 永久在线观看 | 欧美成人精品高清在线观看 | 快播久久 |