|
楼主 |
发表于 2016-9-21 17:13:04
|
显示全部楼层
先在此谢过大哥!
尝试过了,找到原因了。
CI框架Insert方法源码如下:
$trace = debug_backtrace();
foreach ($trace as $call)
{
if (isset($call['file']) && strpos($call['file'], BASEPATH.'database') === FALSE)
{
// Found it - use a relative path for safety
$message[] = 'Filename: '.str_replace(array(BASEPATH, APPPATH), '', $call['file']);
$message[] = 'Line Number: '.$call['line'];
break;
}
}
$error =& load_class('Exceptions', 'core');
echo $error->show_error($heading, $message, 'error_db');
exit;
在执行Insert方法中,遇到sql语句错误会直接抛出异常,展示错误信息,并exit终止程序。所以没有办法捕捉错误,目前想到有两种解决办法,一个是更改CI中的insert方法,多加一个param,然后进行判断,另一个是自己写一个方法。
这个确实是CI中的坑,它并没有一个较适配的接口去运用,只能改改底层代码了。 |
|