我在两个字段的MYSQL数据库表上有一个索引。我使用autoPrepare& amp批处理INSERTS executeMultiple PHP MDB2 MYSQL扩展提供的。如果我的索引上有重复的匹配,但它会抛出错误并停止批量插入。我正在寻找INSERT IGNORE等效项,这是一个MYSQL命令,如果尝试重复,则忽略错误。
批量插入允许您指定数组中的表字段,指定字段类型,然后指定要在数组中输入的所有值。你得到的结果如下:
$sth = $db->extended->autoPrepare($table_name, $table_fields,MDB2_AUTOQUERY_INSERT, null, $types);
$res = $db->extended->executeMultiple($sth, $table_values);
因此不会发送任何特定查询。我需要以某种方式发送一个选项,以便它知道不会在重复上抛出错误,而只是忽略该条目。
答案 0 :(得分:0)
放弃使用MDB2批量插入。而是使用带有ignore的普通插入:
INSERT IGNORE into TABLENAME (field1, field2) VALUES (1,2), (a,b) ...
索引位于field1& field2在一起。如果IGNORE对索引值进行重复尝试,则会跳过该条目,但与MDB2批处理命令不同,IGNORE选项会在查询重复输入方案时继续查询。