Codeigniter Database Insert Failure

Go To


Currently in my controller, when adding new data, I validate the inputs, and if there are any problems it lets a user known, otherwise it passes the data to the model to insert to the database

How do I now go about checking the insert statement worked correctly in the model, and let a user known if it did not.

Does an insert statement like below, return true or false, which can then be returned to the controller?

$this->db->insert('Faviroute_Addresses', $address_data);

Thanks for any help

2012-04-04 17:02
by Ben_hawk


You can use

if($this->db->insert('Faviroute_Addresses', $address_data))
    // Code here after successful insert
    return true;   // to the controller

Or you can use

$this->db->insert('Faviroute_Addresses', $address_data);
if($this->db->affected_rows() > 0)
    // Code here after successful insert
    return true; // to the controller
2012-04-04 17:36
by The Alpha
one thing to note that i've come across recently is if you are using $this->db->affected_rows() for UPDATE queries, it will return a zero if the query succeeded but no information was changed from what already existed in the row - Andrew Brown 2013-11-21 07:09


Personally I'd avoid using the


method for an insert. SQLServer doesn't return a value for an insert, so taking the return value from


would be more reliable. I'd reserve affected_rows for checking "UPDATE"s :)


The same thing applies for


The affected_rows() function doesn't work in SQL Server on a delete...

2014-02-07 10:08
by Algy Taylor