检查Joomla的最佳方法! 3.4.0文章已经存在

时间:2015-03-06 14:51:51

标签: php mysql sql joomla joomla3.3

我在Joomla创作文章!以编程方式使用JTable。 由于我有很多需要定期同步的文章,我需要在插入之前检查每篇文章是否已经存在(否则会产生错误)。

最好的方法是什么?

我的想法是从数据库中检索所有文章并比较唯一字段。但是在检索文章时出现了问题(空白页面)。这是代码:

function getExistingArticles(){

    // Create a new query object.
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);

    $query->select('*')->where('`a.created_by_alias`= `article_synchronizer`'); // Prepare query.

    $query->from('`#___categories` AS a');

    // Reset the query using newly populated query object.
    $db->setQuery($query);
    $articles = $db->loadObjectList(); // Execute query, return result list.

    return $articles;
}

如果这是最好的"在Joomla!检查某个文章是否已经存在,此代码中的问题在哪里导致空白页?

否则这是检查Joomla的最佳方法!有特定内容的文章已经存在?

1 个答案:

答案 0 :(得分:1)

我没有测试过您的查询,但我建议使用Joomla的API引用列名和值,如下所示:

function getExistingArticles()
{
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);

    $query->select($db->quoteName(array('a.*')))
          ->from($db->quoteName('#__categories', 'a'))
          ->where($db->quoteName('a.created_by_alias') . ' = ' . $db->quote('article_synchronizer')); // Quoted query.

    $db->setQuery($query);
    $articles = $db->loadObjectList();

    return $articles;
}

我已经修改了你的查询。在定义表前缀时,您使用了3个下划线(仅应使用2个)。 wherefrom条款也是错误的方式。