php - 如何在 PHP 中执行多个 MySQL 插入

标签 php mysql

我需要向 MySQL 表中插入很多行(150 到 300 之间),我想知道以下方法在性能方面的优势:

方法一:

foreach( $persons as $person ){

       $stmt = $dbLink->prepare( "INSERT INTO table SET id = :ID, 
                                                 name = :name, 
                                                 email = :email, 
                                                 mobile = :mobile");
       $stmt->execute( array( ':ID'=>$person->getID(),
                              ':name'=>$person->getName(),
                              ':email'=>$person->getEmail(),
                              ':mobile'=>$person->getMobile(),
                              ) );
}

方法二:

$stmt = $dbLink->prepare( "INSERT INTO table SET id = :ID, 
                                                 name = :name, 
                                                 email = :email, 
                                                 mobile = :mobile");

$stmt->bindParam( ':ID', $person->getID(), PDO::PARAM_STR );
$stmt->bindParam( ':name', $person->getName(), PDO::PARAM_STR );
$stmt->bindParam( ':email', $person->getEmail(), PDO::PARAM_STR );
$stmt->bindParam( ':mobile', $person->getMobile(), PDO::PARAM_STR );

foreach( $persons as $person ){

       $stmt->execute(); 
}

最佳答案

造成差异的是对数据库的调用量。尽可能减少调用量。

取而代之的是:

insert (a,b,c) values (d,e,f); 
insert (a,b,c) values (g,h,i); 
insert (a,b,c) values (j,k,l); 
insert (a,b,c) values (m,n,o);

这样做:

insert (a,b,c) values (d,e,f),(g,h,i),(j,k,l),(m,n,o);

因此,在一次调用中完成您在 4 个调用中完成的操作。

关于php - 如何在 PHP 中执行多个 MySQL 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34224115/

相关文章:

php - 将 $_GET 方法保存到数据库中并更改它

php - 搜索存储为整数的部分 IP 地址

mysql - Dockerfile 不从我的 initialize.sql 创建表

php - 如何忽略authorize.net支付网关中的AVS不匹配?

java - 将 PHP 源代码转换为 Java 源代码?

php - 如何显示所选年份的两个不同列

运行脚本时MySQL出错 "Cannot add Foreign Key Constraint"

php - MYSQL连接查询不删除

php - 双体标签导致 Wordpress 网站无法正常工作

php - 通过提示输入 php 中的第一个数字来顺序编号文件