如何启用php以使用postgresql?

Aar*_*ron 35 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();
}

?>
Run Code Online (Sandbox Code Playgroud)

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

Jor*_*res 72

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

sudo apt-get install php5-pgsql
Run Code Online (Sandbox Code Playgroud)

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

extension=php_pgsql.dll (windows)
extension=php_pgsql.so (linux)
Run Code Online (Sandbox Code Playgroud)

Greatings.

  • 只是 php7 这个旧线程的更新,命令是: sudo apt install php7.0-pgsql (2认同)

小智 48

试试这个:

通过删除";"取消注释php.ini中的以下内容

;extension=php_pgsql.dll
Run Code Online (Sandbox Code Playgroud)

使用以下代码连接到postgresql数据库服务器:

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


COR*_*ian 6

  • 所以:Windows/Linux
  • HTTP 网络服务器:Apache
  • 编程语言:PHP

使 PHP 能够与 Apache 中的 PostgreSQL 一起使用

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

我确保取消注释以下几行:

extension=php_pgsql.dll 
extension=php_pdo_pgsql.dll
Run Code Online (Sandbox Code Playgroud)

最后在尝试与数据库引擎建立新连接之前重新启动 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;
}
Run Code Online (Sandbox Code Playgroud)

GL


小智 5

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

LoadFile "C:/Program Files (x86)/PostgreSQL/8.3/bin/libpq.dll"
Run Code Online (Sandbox Code Playgroud)


Nad*_*v B 5

对于debian / ubuntu安装

sudo apt-get install php-pgsql
Run Code Online (Sandbox Code Playgroud)