不幸的是,这个错误打印在孔页面上。现在我不想 删除一个新查询只是为了检查这个主键是否已经存在。
答案 0 :(得分:2)
禁用在执行路径调用中抛出Joomla异常:
JError::setErrorHandling(E_ALL, "ignore");
替代方案,您可以设置自己的自定义处理程序:
JError :: setErrorHandling(E_ALL,'callback',array('myClass','myErrorHandlerFunction'));
答案 1 :(得分:1)
来自raiseError
没有ESCAPE以下是Joomla的加注方法。你可以看到它使用 jexit 来调用php exit
function & raise($level, $code, $msg, $info = null, $backtrace = false)
{
jimport('joomla.error.exception');
// build error object
$exception = new JException($msg, $code, $level, $info, $backtrace);
// see what to do with this kind of error
$handler = JError::getErrorHandling($level);
$function = 'handle'.ucfirst($handler['mode']);
if (is_callable(array('JError', $function))) {
$reference =& JError::$function ($exception, (isset($handler['options'])) ? $handler['options'] : array());
} else {
// This is required to prevent a very unhelpful white-screen-of-death
jexit(
'JError::raise -> Static method JError::' . $function . ' does not exist.' .
' Contact a developer to debug' .
'<br /><strong>Error was</strong> ' .
'<br />' . $exception->getMessage()
);
}
//store and return the error
$GLOBALS['_JERROR_STACK'][] =& $reference;
return $reference;
}
答案 2 :(得分:1)
如果覆盖现有行无关紧要,可以使用
REPLACE INTO 'table' set 'field'=1 etc etc
这将创建一行或替换现有的一行。这应该使得如果行存在则根本不会引发错误。