2

我正在 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! 的最佳方法!具有一定内容的文章已经存在?

4

1 回答 1

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 个)。whereand子句也是错误的from方式。

于 2015-03-06T15:04:46.810 回答