我在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的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子句也是错误的。

07-24 18:18
查看更多