【问题标题】:What's the preferred way to connect to a postgresql database from PHP?从 PHP 连接到 postgresql 数据库的首选方式是什么?
【发布时间】:2010-09-05 20:22:01
【问题描述】:

我已经使用 PHP 和 MySQL 很长时间了,现在将开始使用 PostgreSQL。

首选方法是什么?

是通过 PDO 对象还是有更好的方法?

【问题讨论】:

    标签: php postgresql


    【解决方案1】:

    还有the pg_whatever functions,不过不要用。

    他们使用较旧的、未维护的数据库驱动程序。 PDO 是要走的路。

    【讨论】:

      【解决方案2】:

      根据应用程序的规模,您可能希望考虑到后端的连接数。共识似乎是 PHP 持久连接和 PostgreSQL 不能很好地协同工作,所以应该使用pgpool-|| 之类的东西作为中介。

      【讨论】:

        【解决方案3】:

        使用 Zend Db:

        require_once 'Zend/Db.php';
        $DB_ADAPTER = 'Pdo_Pgsql';
        $DB_CONFIG = array(
            'username' => 'app_db_user',
            'password' => 'xxxxxxxxx',
            'host'     => 'localhost',
            'port'     => 5432,
            'dbname'   => 'mydb'
        );
        $db = Zend_Db::factory($DB_ADAPTER, $DB_CONFIG);
        

        【讨论】:

          【解决方案4】:

          如果您决定不使用 PDO,我还建议创建一个继承的 PDO 类或包装类。这将在未来为您提供更多的灵活性。 IE。计算查询执行时间。

          【讨论】:

            【解决方案5】:

            就我个人而言,当我可以选择时,我会使用 PDO 来完成我所有的数据库工作。准备好的语句让我的生活变得轻松,并且它在数据库系统之间是无缝的 - 如果您必须使用一个您不习惯的系统,它会很方便。

            如果您想推出自己的抽象,或使用程序模型,这里是 Postgre 函数:http://ca.php.net/manual/en/ref.pgsql.php

            【讨论】:

              【解决方案6】:

              PDO 对象是新的热点。我建议只要您能确保您的目标平台始终运行 PHP 5.2+。

              还有许多其他支持 PostgreSQL 的数据库抽象层与旧版本的 PHP 兼容;我推荐ADODB

              即使在 MySQL 工作中,您也应该真正使用 PDO 或不同的抽象层;这样你就不会再遇到这个问题了!

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-05-20
                • 2016-01-06
                • 1970-01-01
                • 2011-07-24
                • 2021-11-21
                • 2011-03-20
                • 1970-01-01
                • 2020-07-16
                相关资源
                最近更新 更多