在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')");
}
答案 0 :(得分:59)
您可以使用codeigniter的$this->db->affected_rows()
功能。
查看更多信息here
您可以这样做:
return ($this->db->affected_rows() != 1) ? false : true;
答案 1 :(得分:5)
你也可以使用交易这样做:
$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中的交易的more info!
答案 2 :(得分:1)
如果您在 codeigniter 上使用引导程序,请尝试使用Flash消息 要么 只需重定向
$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');
在控制器上
答案 3 :(得分:0)
我更喜欢使用
echo $this->db->affected_rows();
在模型文件中