Sandesh Sharma
Sandesh Sharma

Reputation: 1084

INSERT Batch, and if duplicate key Update in codeigniter

Is there any way of performing in batch Insert query and if the key already exists, UPDATE that row in codeigniter? I have gone through the documentation and found only insert_batch and update_batch. But how to update the row with duplicate key in active records? And what happens if one row fails to be inserted or updated in batch_insert? All insertion fails or only that row?

Upvotes: 7

Views: 12378

Answers (2)

Amir Hussain
Amir Hussain

Reputation: 139

For Codeigniter 3, you can use this library. This allows you to be able to supply an array of key-value pairs to be inserted into separate rows and will auto-update data if a duplicate key occurs in DB. https://github.com/amir-ranglerz/CodeIgniter-Insert-Batch-on-DUPLICATE-KEY-Update

Upvotes: 0

Moyed Ansari
Moyed Ansari

Reputation: 8461

You will have to go with little custom query by adding "ON DUPLICATE" statement

$sql = $this->db->insert_string('YourTable', $data) . ' ON DUPLICATE KEY UPDATE duplicate=duplicate+1';
$this->db->query($sql);
$id = $this->db->insert_id();

Also please check this out, it will give you better solution

Upvotes: 9

Related Questions