gpt4 book ai didi

php - 从 PHP 数组向 MySQL 插入 500 行

转载 作者:行者123 更新时间:2023-11-29 06:26:56 25 4
gpt4 key购买 nike

代码

id     code
-- ------
1 BB3CA4
2 2788BA
3 E3E3A5
. .
. .
. .

要添加到 codes 表的 500 个名为 $codes 的半唯一字符串的 PHP 数组:

$codes = array( 'AC2BE4', 'BC61A2', '34CE5A', ... );

我的 PDO 数据库连接对象:

$dbh = new PDO( "mysql:host=$host;dbname=$db", $user, $pass );

尝试1

将 PDO 插入执行在 PHP 循环中:

foreach( $codes as $code ){
$stmt = $dbh->prepare("INSERT INTO codes ( code ) VALUES ( :code )");
$stmt->bindParam( ':code', $code , PDO::PARAM_STR );
$stmt->execute();
}

我认为这不是一个好的解决方案!

尝试2

第二次尝试是通过粘合 500 个 SQL 查询并立即运行它来构建一个长 SQL 查询。

最佳答案

执行相同查询但具有不同参数的准备语句不必多次创建,只需创建一次,因此在循环之前创建语句,然后迭代,绑定(bind)参数并在循环内执行查询。

$stmt = $dbh->prepare("INSERT INTO codes ( code ) VALUES ( :code )");
foreach( $codes as $code ){
$stmt->bindParam( ':code', $code , PDO::PARAM_STR );
$stmt->execute();
}

使用 PDO,您甚至可以通过在执行调用中设置参数来精简代码:

$stmt = $dbh->prepare('INSERT INTO codes ( code ) VALUES ( :code )');
foreach($codes as $code) {
$stmt->execute(array('code' => $code));
}

关于php - 从 PHP 数组向 MySQL 插入 500 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30414526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com