我正在用 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!具有特定内容的文章已经存在?
最佳答案
我没有测试您的查询,但我建议使用 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 个)。 where
和 from
子句也是错误的。
关于php - 检查 Joomla! 3.4.0文章已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28901330/