将多个值插入表中

问题描述 投票:0回答:1

我尝试使用无脂肪框架sql映射器将多个VALUES插入表中。

Docs

问题是它只显示一个值

$db->exec('INSERT INTO mytable VALUES(?,?)',array(1=>5,2=>'Jim'))

由于我有很多记录,需要加快速度,所以我想添加多个

VALUES,如VALUES(?,?),(?,?),?,?);

但是数组看起来如何?

背景。我尝试通过这种方式加快导入速度,因为我解析了超过100k个以上的csv文件并将其导入。

fat-free-framework
1个回答
0
投票

要做的语法是:

$db->exec("INSERT INTO `table` (`col1`,`col2`) VALUES ('val1','val2'), ('val1','val2'), ('val1', 'val2')");

肯定是您要使用准备好的语句,我建议您首先为占位符生成字符串

VALUES (:q1, :q2), (:q3, :q4), (:q5, :q6)

然后生成绑定

[
   ':q1' => $data['val1'],
   ':q2' => $data['val2'],
   ':q3' => $data['val3'],
   ':q4' => $data['val4'],
   //...
],
© www.soinside.com 2019 - 2024. All rights reserved.