我在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的最佳方法!有特定内容的文章已经存在?
答案 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个)。 where
和from
条款也是错误的方式。