Joomla 乔姆拉!不推荐使用JDatabase::getErrorNum(),请改用异常处理
我有以下代码:Joomla 乔姆拉!不推荐使用JDatabase::getErrorNum(),请改用异常处理,joomla,joomla2.5,joomla3.0,Joomla,Joomla2.5,Joomla3.0,我有以下代码: $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('*'); $query->from('#__users'); $db->setQuery($query); // Check for a database error. if ($db->getErrorNum()) { JError
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__users');
$db->setQuery($query);
// Check for a database error.
if ($db->getErrorNum()) {
JError::raiseWarning(500, $db->getErrorMsg());
}
$result = $db->loadResult();
现在getErrorNum和JError都不推荐使用。
只是想澄清一下,JError和$db->getErrorNum()在Joomla 2.5中没有被弃用,而是在Joomla中!3.0. 所以这个问题对于那些为2.5开发但想轻松升级到3.X系列的人来说很有价值
那么,到底用什么替换它们呢?,这样我就可以正确地检查数据库错误了?JError在Joomla 2.5中没有被弃用,但在Joomla 3.0(12.1平台以后)中,所以对于Joomla 2.5来说,这不是一个问题。JError被php异常所取代(链接到php指南) 关于这一点,Joomla论坛也提出了一个问题 getErrorNum()也使用exception-再次阅读上面的php文档链接了解更多信息。页面上有一个很好的mysql示例 希望能有帮助
$app = JFactory::getApplication();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from('#__tablename');
try
{
$db->setQuery($query);
$result = $db->loadObjectList();
}
catch (Exception $e)
{
$app->enqueueMessage(JText::_($e->getMessage()), 'error');
}
并重定向到您的url。将显示错误消息
$app = JFactory::getApplication();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from('#__tablename');
try
{
$db->setQuery($query);
$result = $db->loadObjectList();
}
catch (Exception $e)
{
$app->enqueueMessage(JText::_($e->getMessage()), 'error');
}