I am trying to insert a few rows into the MySQL table using Codeigniter and Active Records.
PHP Code
$data = array('......'); // some rows of data to insert
$this->db->insert_batch('my_table', $data);
However this may cause duplicate rows to be inserted into the table. To handle the insertion of duplicate data, I plan to use the INSERT IGNORE
command to not insert the row if the row is a duplicate.
Problem: I cannot find the INSERT IGNORE
equivalent in Active Records and do not want to edit the Active Record class. Are there any other alternatives?
The following looks interesting, but if I do the following, wont the query be run twice?
$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
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…