如何启用php以使用postgresql?

时间:2012-05-17 17:48:59

标签: php windows postgresql pdo

<?php

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

?>

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

11 个答案:

答案 0 :(得分:69)

您需要为php安装pgsql模块。 在debian / ubuntu中是这样的:

sudo apt-get install php5-pgsql

或者如果安装了软件包,则需要在php.ini中启用de module

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

Greatings。

答案 1 :(得分:41)

试试这个:

通过删除“;”

取消注释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());

答案 2 :(得分:2)

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

  

apt-get install php5-pgsql php5-mysql php5-sqlite ...依此类推......

快乐!

答案 3 :(得分:2)

我使用Windows平台安装程序(WP1)在Windows IIS上安装了PHP。 WPl在“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

答案 4 :(得分:2)

对于debian / ubuntu安装

sudo apt-get install php-pgsql

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

  • 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

答案 7 :(得分:0)

您需要安装pdo_pgsql包

答案 8 :(得分:0)

我和其他许多人在这方面花了太长时间 - 这需要大量的改进。花了好几个小时后,我终于将php的ext目录中的php_pgsql.dll复制到Apache24的根目录(无论你安装它的哪个地方),最后Apache能够加载php / pg模块和dll。

答案 9 :(得分:0)

在我的情况下,有 2个php.ini ,我不得不取消注释两个php.ini中的扩展名pdo_pgsql

  1. php 文件夹中
  2. apache 文件夹中

都在 wamp 文件夹中

答案 10 :(得分:0)

$dbh = new PDO('pgsql:host=localhost;port=5432;dbname=###;user=###;password=##');

对于PDO类型的连接取消注释

extension=php_pdo_pgsql.dll并使用

发表评论

;extension=php_pgsql.dll

$dbh = pg_connect("host=localhost dbname=### user=### password=####");

对于pgconnect类型的连接注释

;extension=php_pdo_pgsql.dll和取消注释

extension=php_pgsql.dll

两个连接都应该起作用。