Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Joomla 乔姆拉!不推荐使用JDatabase::getErrorNum(),请改用异常处理_Joomla_Joomla2.5_Joomla3.0 - Fatal编程技术网

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');
}