CodeIgniter Forums
Silent Inserts - Printable Version

+- CodeIgniter Forums (
+-- Forum: Archived Discussions (
+--- Forum: Archived Development & Programming (
+--- Thread: Silent Inserts (/thread-23336.html)

Silent Inserts - El Forum - 10-07-2009


I have a unique index on one of my table columns to avoid duplicates, what i want to do is to insert a list of items and ignoring any errors for duplicates:

$this->db_debug = FALSE;
foreach($interests as &$interest){
  $interest = trim($interest);                        
  $this->Interests_model->insert(array('interest_name' => $interest));
$this->db_debug = TRUE;

But I'm still getting

A Database Error Occurred
Error Number: 1062
Duplicate entry 'playing soccer' for key 2
INSERT INTO `interests` (`interest_name`) VALUES ('playing soccer')

What's wrong with that?

Thanks In Advance
Yehia A.Salam

Silent Inserts - El Forum - 10-07-2009

Untested, but try: @$this->Interests_model->insert(array('interest_name' => $interest));

Silent Inserts - El Forum - 10-07-2009

nop nothing, i got the same error, i even tried
$db['default']['db_debug'] = FALSE;
but i always get the same error.

Silent Inserts - El Forum - 10-07-2009

Try this, but you may need to change the syntax but ON DUPLICATE KEY UPDATE.

INSERT INTO `interests` (`interest_name`) VALUES ('playing soccer') ON DUPLICATE KEY UPDATE (`interest_name`);


Silent Inserts - El Forum - 10-08-2009

I used INSERT IGNORE instead since i don't want to perform any action when i'm inserting duplicates, it's not exposed by the Active Record Class however.