php - 检查 Joomla! 3.4.0文章已经存在

标签 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!具有特定内容的文章已经存在?

最佳答案

我没有测试您的查询,但我建议使用 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 子句也是错误的。

关于php - 检查 Joomla! 3.4.0文章已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28901330/

相关文章:

php - 安装 LAMP - PHP 无法连接 MySQL - 为什么?

sql - PostGIS:多面体的边界框

php - 动态 Bootstrap 轮播

PHP-MySQL : Not able to fetch multiple record from database into word file

php - 如何在 CodeIgniter 中为 is_unique 表单验证启用查询生成器?

php - 递归地通过php中的数组来修改叶子

sql - Datamapper "first"方法正在查询整个关系

sql - 从 MySQL 中的多个表中选择

php - 在 PHP 或 MySQL 中按日期(月年)排序

javascript - Jquery $.post 返回对象