8

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

2 Answers 2

31

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
}
Sign up to request clarification or add additional context in comments.

1 Comment

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.
2

Personally I'd avoid using the

$this->db->affected_rows()

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

$this->db->insert(...)

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

UPDATE:

The same thing applies for

$this->db->delete()

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.