web-dev-qa-db-ja.com

PHPをpostgresqlと連携させるにはどうすればよいですか?

<?php

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

?>

「ドライバーをロードできませんでした」というエラーメッセージが表示されます

33
Aaron

これを試して:

「;」を削除して、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());
46
Sachin Puri

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。

72
Jorge Olivares

WindowsにPHPをインストールしましたIIS Windows Platform Installer(WPΙ)を使用します。WPΙは「インターネットインフォメーションサービス(IIS)マネージャー」に「PHPマネージャー」ツールを作成しますコンソール。このツールを使用してPHPを設定しています。

in http://php.net/manual/en/pdo.installation.php 言います:

PDOおよびすべての主要なドライバーはPHPを共有拡張機能として出荷し、php.iniファイルを編集して有効化する必要があります:extension = php_pdo.dll

だから私はPHP Managerを使用して拡張機能を有効にし、PDOは正常に動作します

PHPマネージャーは、私のphp.iniに以下の2行を追加しました。手動で行を追加できます。もちろん、Webサーバーを再起動する必要があります。

[PHP_PDO_PGSQL]
extension = php_pdo_pgsql.dll

Debian/ubuntuインストールの場合

Sudo apt-get install php-pgsql
3
Nadav B
  • SO:Windows/Linux
  • HTTP Webサーバー:Apache
  • プログラミング言語:PHP

ApacheでPostgreSQLを使用するには、PHPを有効にします

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

3
CORONEL Braian

データベースドライバーをインストールするだけです。

apt-get install php5-pgsql php5-mysql php5-sqlite ...など...

そして、幸せになります!

3
augustowebd

Httpd.confに次の行を追加する必要があります(Windows):

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

私と他の多くのひげそりはこれにあまりにも長い時間を費やしました-これには大きな改善が必要です。数時間を費やした後、php_pgsql.dllをphpのextディレクトリからApache24のルートディレクトリ(インストールした場所)にコピーし、最終的にApacheはphp/pgモジュールとdllをロードできました。

1
user5699115

Pdo_pgsqlパッケージをインストールする必要があります

1
rinat.io