我需要向 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/