Я пытаюсь вставить несколько строк в таблицу MySQL, используя Codeigniter и Active Records.
Код PHP
$data = array('......'); // some rows of data to insert
$this->db->insert_batch('my_table', $data);
Однако это может привести к тому, что в таблицу будут вставлены повторяющиеся строки. Чтобы обработать вставку дублированных данных, я планирую использовать команду INSERT IGNORE
, чтобы не вставлять строку, если строка является дубликатом.
Проблема: Я не могу найти эквивалент INSERT IGNORE
в Active Records и не хочу редактировать класс 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