【发布时间】:2012-06-13 12:19:07
【问题描述】:
我正在尝试使用 Codeigniter 和 Active Records 向 MySQL 表中插入几行。
PHP 代码
$data = array('......'); // some rows of data to insert
$this->db->insert_batch('my_table', $data);
但是这可能会导致重复的行被插入到表中。为了处理重复数据的插入,如果行是重复的,我计划使用INSERT IGNORE 命令不插入行。
问题:我在 Active Records 中找不到 INSERT IGNORE 等效项,并且不想编辑 Active Record 类。还有其他选择吗?
以下看起来很有趣,但是如果我执行以下操作,查询不会运行两次吗?
$insert_query = $this->db->insert_batch('my_table', $data); // QUERY RUNS ONCE
$insert_query = str_replace('INSERT INTO','INSERT IGNORE INTO',$insert_query);
$this->db->query($insert_query); // QUERY RUNS A SECOND TIME
【问题讨论】:
-
阅读所有答案后,让我总结一下 - 没有好的方法可以批量执行此操作
:( -
我用 MySQL 5.5.42 尝试了 INSERT IGNORE 并且可以工作。但是,即使没有插入任何内容,自动增量也会继续增加。
标签: php codeigniter activerecord