php - Postgres 兼容的 Joomla 组件

标签 php postgresql joomla

由于 Joomla 2.5 原生支持 PostgreSQL,我们非常支持它。当我为我们的系统开发一个组件时,我想知道使它兼容的确切语义是什么?

对于 MySQL,我在 admin/sql/install.mysql.utf8.sql 中有我的安装脚本。 PostgreSQL 会是什么?我也可以使用 #_ 作为数据库前缀吗?

最佳答案

额外的数据库支持旨在尽可能透明,以便您可以保持大部分代码相同。

如果您一直在使用 Joomla! 的 JDatabase 类,您应该在 PHP 中像这样构建查询:

    /* (example php may not actually work)
       Get the factory DB object */
    $db = JFactory::getDbo();
    // Get a new JDatabaseQuery object
    $query = $db->getQuery(true);
    // Build our query...
    $query->select('id');
    $query->from('#__mycomponents_table');
    $query->where('id=99');
    // Attach the query to the DB object
    $db->setQuery($query);
    // Run it and check the result...
    if (!$db->loadResult()){...}

正如您所确定的那样,安装/卸载 SQL 脚本之类的东西需要特定于数据库。这也意味着对您的 list XML 进行小幅更新……这是一个示例。

<install>
    <sql>
        <file charset="utf8" driver="mysql">sql/install.mysql.sql</file>
        <file charset="utf8" driver="postgresql">sql/install.postgresql.sql</file>
    </sql>
</install>

我建议查看 com_finder 代码,因为它确实有一个针对 Postgres 安装/卸载 SQL 的特定示例。

关于php - Postgres 兼容的 Joomla 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11168573/

相关文章:

javascript - 通用ajax表单提交

php - joomla 中 & 的含义

php - 如何为 PHPunit 测试设置特定的类属性?

javascript - 在 config.js 文件中需要 baseurl

python - 哪个更贵(以美元为单位): database memory or processing power?

sql - PostgreSQL 返回带有 DISTINCT 的多行,尽管每秒只有最新的日期列

javascript - 灯箱代码在 Chrome/Firefox 中工作正常但在 IE 中不工作

ios - Jcomments 数据存储在哪里?

php - Symfony2 - 触发 404 异常的最佳实践

sql - Gnu Emacs : tab-completion for psql running within sql. el 进程