如何启用PHP的PostgreSQL的工作?

问题描述 投票:31回答:9
<?php

try {
   $dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');
   echo "PDO connection object created";
}
catch(PDOException $e)
{
      echo $e->getMessage();
}

?>

我收到错误消息“无法加载驱动程序”

php windows postgresql pdo
9个回答
46
投票

尝试这个:

通过除去取消注释在php.ini下面的“”

;extension=php_pgsql.dll

使用下面的代码连接到PostgreSQL数据库服务器:

pg_connect("host=localhost dbname=dbname user=username password=password")
    or die("Can't connect to database".pg_last_error());

72
投票

您需要安装的pgsql模块为PHP。在于Debian / Ubuntu是这样的:

sudo apt-get install php5-pgsql

或者,如果安装了软件包,您需要启用在php.ini德模块

extension=php_pgsql.dll (windows)
extension=php_pgsql.so (linux)

Greatings。


4
投票

对于Debian / Ubuntu的安装

sudo apt-get install php-pgsql

3
投票

只需安装数据库驱动程序:

易于得到安装的php5-pgsql的PHP5-MySQL的PHP​​5-源码...等等...

而且要快乐!


3
投票

我安装了PHP在Windows上使用Windows平台安装程序(WPΙ)IIS。 WPΙ创建在“Internet信息服务(IIS)管理器”控制台“PHP管理器”的工具。我使用这个工具配置PHP。

http://php.net/manual/en/pdo.installation.php说:

PDO和所有主要的驱动程序与PHP作为船舶共享的扩展,并且只需要通过编辑php.ini文件被激活:延长= php_pdo.dll

所以我使用PHP管理激活了扩展,现在PDO正常工作

PHP经理简单的添加下面两行我的php.ini,你可以手工添加的行。当然,你必须重新启动Web服务器。

[PHP_PDO_PGSQL] 延长= php_pdo_pgsql.dll


3
投票

我必须在httpd.conf这一行(Windows)中添加:

LoadFile "C:/Program Files (x86)/PostgreSQL/8.3/bin/libpq.dll"

3
投票
  • SO:在Windows / Linux的
  • HTTP的Web服务器:Apache
  • 编程语言:PHP

启用PHP在Apache中PostgreSQL的工作

在Apache中我编辑以下配置文件:C:\xampp\php.ini

我一定要具备以下行注释掉:

extension=php_pgsql.dll 
extension=php_pdo_pgsql.dll

尝试对数据库引擎的新连接之前,最后重新启动Apache。


另外,我离开我的代码,确保连接是独一无二的:

private static $pdo = null;

public static function provideDataBaseInstance() {
    if (self::$pdo == null) {
        $dsn = "pgsql:host=" . HOST .
               ";port=5432;dbname=" . DATABASE .
               ";user=" . POSTGRESQL_USER .
               ";password=" . POSTGRESQL_PASSWORD;
        try {
            self::$pdo = new PDO($dsn);
        } catch (PDOException $exception) {
            $msg = $exception->getMessage();
            echo $msg . 
                 ". Do not forget to enable in the web server the database 
                  manager for php and in the database instance authorize the 
                  ip of the server instance if they not in the same 
                  instance.";
        }
    }
    return self::$pdo;
}

GL


1
投票

你需要安装pdo_pgsql包


1
投票

我和许多其他剃须花在这个太长了 - 这需要一个庞大的改善。花了几个小时后,我终于复制了PHP的ext目录php_pgsql.dll到Apache24的根目录下(无论你安装了它),最后的Apache能得到加载的PHP / PG模块和DLL。


推荐问答