How to test if Ci successfully inserted data

2020-02-03 04:21发布

问题:

In Ci, I've got the following function. How do I test that the query successfully inserted without error's?

public function postToWall() {
    $entryData = $this->input->post('entryData');
    $myChurchId  = $this->session->userdata("myChurchId");
    $this->db->query("INSERT IGNORE INTO wallPosts (entryData, entryCreationDateTime, wpChurchId)
                      VALUES('$entryData', NOW(), '$myChurchId')");
}

回答1:

You can use $this->db->affected_rows() function of codeigniter.

See more information here

You can do something like this:

return ($this->db->affected_rows() != 1) ? false : true;


回答2:

You can also do it using Transactions like this:

           $this->db->trans_start();
           $this->db->query("INSERT IGNORE INTO wallPosts (entryData, entryCreationDateTime, wpChurchId)
                      VALUES('$entryData', NOW(), '$myChurchId')");
           $this->db->trans_complete();

           if ($this->db->trans_status() === FALSE) {
               return "Query Failed";
           } else {
               // do whatever you want to do on query success
           }

Here's more info on Transactions in CodeIgniter!