我尝试使用无脂肪框架sql映射器将多个VALUES插入表中。
问题是它只显示一个值
$db->exec('INSERT INTO mytable VALUES(?,?)',array(1=>5,2=>'Jim'))
由于我有很多记录,需要加快速度,所以我想添加多个
VALUES
,如VALUES(?,?),(?,?),?,?);
但是数组看起来如何?
背景。我尝试以这种方式加快导入速度,因为我解析了100k +个csv大文件并将其导入。
答案 0 :(得分: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'],
//...
],