在Ci中,我有以下功能。如何测试查询是否成功插入且没有错误?
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')");
}
您可以使用codeigniter的
$this->db->affected_rows()
功能。
查看更多信息这里
你可以这样做:
return ($this->db->affected_rows() != 1) ? false : true;
您也可以使用 Transactions 来完成此操作,如下所示:
$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
}
这里有关于 CodeIgniter 中事务的更多信息!
如果您在 codeigniter 上使用 bootstrap 尝试闪现消息 或者 只需重定向
$added = $this->your_modal->function_reference($data);
if ($added) {
$this->session->set_flashdata('success', 'Added successfully.');
redirect('home');
} else {
$this->session->set_flashdata('error', 'Something wrong.');
redirect('home');
在控制器上
我更喜欢使用
echo $this->db->affected_rows();
在模型文件中
Codeigniter 4:
$db = db_connect();
(your insert query)
return ($db->affectedRows() != 1) ? false : true;