首页 > 数据库 > mysql教程 > 如何使用 PHP 和 PDO 高效地将多行插入 MySQL 表中?

如何使用 PHP 和 PDO 高效地将多行插入 MySQL 表中?

Barbara Streisand
发布: 2024-10-29 11:52:29
原创
216 人浏览过

How to Efficiently Insert Multiple Rows into a MySQL Table Using PHP and PDO?

使用 PHP 和 PDO 将数组插入 MySQL

初始化在线程序时,客户可以注册多个以三位数整数表示的程序,并且存储在数组中。例如,要注册节目 155、165、175 和 185,将使用以下数组:

<code class="php">$data = array(155, 165, 175, 185);</code>
登录后复制

传统上,会创建一个循环来执行多个 INSERT 语句,例如:

<code class="php">for($j = 0; $j < (count($data)-1); $j++) {
   $stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
   $stmt->execute(array($memberid, $data[$j]));
}</code>
登录后复制

但是,构建单个动态 SQL 语句被认为更有效。一个可能的解决方案是:

<code class="php">$sql = array();
foreach( $data as $row ) {
    $sql[] = '("'.$memberid.'", "'.$row[$j].'", NOW()")';
}
mysql_real_query('INSERT INTO table (memberid, programid) VALUES '.implode(',', $sql));</code>
登录后复制

使用 PDO,更合适的方法是:

<code class="php">$sql = 'INSERT INTO table (memberID, programID) VALUES ';
$insertQuery = array();
$insertData = array();
foreach ($data as $row) {
    $insertQuery[] = '(?, ?)';
    $insertData[] = $memberid;
    $insertData[] = $row;
}

if (!empty($insertQuery)) {
    $sql .= implode(', ', $insertQuery);
    $stmt = $db->prepare($sql);
    $stmt->execute($insertData);
}</code>
登录后复制

此技术允许使用单个准备好的语句将多行插入到数据库表中,从而减少数据库调用次数并提高性能。

以上是如何使用 PHP 和 PDO 高效地将多行插入 MySQL 表中?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板