栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

已准备好PDO在单个查询中插入多行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

已准备好PDO在单个查询中插入多行

使用PDO预准备语句插入多值

在一个execute语句中插入多个值。为什么这样,因为根据此页面,它比常规插入更快。

$datafields = array('fielda', 'fieldb', ... );$data[] = array('fielda' => 'value', 'fieldb' => 'value' ....);$data[] = array('fielda' => 'value', 'fieldb' => 'value' ....);

更多的数据值,或者您可能有一个循环来填充数据。

使用准备好的插入,您需要知道要插入的字段以及创建?的字段数。占位符以绑定您的参数。

insert into table (fielda, fieldb, ... ) values (?,?...), (?,?...)....

基本上,这就是我们希望插入语句看起来的样子。

现在,代码:

function placeholders($text, $count=0, $separator=","){    $result = array();    if($count > 0){        for($x=0; $x<$count; $x++){ $result[] = $text;        }    }    return implode($separator, $result);}$pdo->beginTransaction(); // also helps speed up your inserts.$insert_values = array();foreach($data as $d){    $question_marks[] = '('  . placeholders('?', sizeof($d)) . ')';    $insert_values = array_merge($insert_values, array_values($d));}$sql = "INSERT INTO table (" . implode(",", $datafields ) . ") VALUES " .       implode(',', $question_marks);$stmt = $pdo->prepare ($sql);try {    $stmt->execute($insert_values);} catch (PDOException $e){    echo $e->getMessage();}$pdo->commit();

尽管在我的测试中,使用多个刀片和具有单个值的常规预加工刀片仅相差1秒。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/594685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号