将多个 VALUES 插入 table

Insert multiple VALUES into table

我尝试使用 fat free 框架 sql 映射器将多个值插入 table。

Docs

问题是它只显示了一个 VALUE

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

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

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

但是数组看起来怎么样?

背景。我尝试以这种方式加快导入速度,因为我解析了 100k+ csv 大文件并导入它们。

这样做的语法是:

$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'],
   //...
],