因此,我正在重写内部Intranet以使用CodeIgniter框架。到目前为止,我一直在$this->db->affected_rows()
确定是否插入,更新或删除了行。
如果此方法返回TRUE
,则我认为SQL已成功。不幸的是,当没有记录更新时,这将失败。
例如,我想更新数据库中的所有记录,如果没有任何与where子句匹配的记录,即使SQL实际上已经工作了,affected_rows()
也将返回FALSE,因为没有任何更新。
我看过Stackoverflow,人们建议使用它$this->db->_error_message()
和_error_code()
等效物。从阅读的内容来看,要使用这些功能,我需要关闭我不想做的DB_DEBUG,因为我仍在重写私有服务器上的Intranet,并且想轻松地查看错误消息而无需浏览日志文件。
是否有任何方法可以将db_debug
set设置为true
,并调用基于查询是否成功返回TRUE或FALSE的方法?
您可以关闭DB_DEBUG
并仍然查看错误消息(如果有)。
$config['db_debug'] = FALSE;
...
$this->db->query('UPDATE all.tables SET x=1 WHERE y=2');//update all tables; y is never 2
$ar = $this->db->affected_rows();
if($ar === 0){
if($this->db->_error_message()){
//there was a db error; print it
echo $this->db->_error_message();//and error_code if you want
}else{
echo "No records affected, also no db error <br>";
echo $this->db->last_query();//see last query if you want
}
}else{
echo "$ar rows affected";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句