PHPからPDOでPostgreSQLに接続する
以下のコードでPHPからPDOでPostgreSQLに接続できること確認しようと思った。
$dsn = 'pgsql:dbname=mydb;host=192.168.1.11;port=5432'; $user = 'user'; $pass = 'pass'; try { $dbh = new PDO($dsn, $user, $pass); $sql = 'SELECT CURRENT_TIMESTAMP'; foreach ($dbh->query($sql) as $row) { print $row[0] . "\n"; } $dbh = null; } catch (PDOException $e){ print('[ERROR] ' . $e->getMessage() . "\n"); die(); }
繋がらない。以下のメッセージが出た。
[ERROR] could not find driver
"php -i" で確認。
#"php -i" は phpinfo() を出力するそうだ。
# php -i | grep pdo /etc/php.d/pdo.ini, /etc/php.d/pdo_sqlite.ini, PHP Warning: 《省略》 pdo_sqlite #
pdo_postgresql とかPostgreSQLと関連ありそうなものが見当たらない。これが「ドライバない」ということか。
"yum list" でパッケージを探すとphp-pgsqlというのがあったのでそれをインストールしてみた。
# yum --enablerepo=remi --enablerepo=remi-php55 list | grep pgsql apr-util-pgsql.x86_64 1.3.9-3.el6_0.1 base dovecot-pgsql.x86_64 1:2.0.9-8.el6_6.4 updates libdbi-dbd-pgsql.x86_64 0.8.3-5.1.el6 base mod_auth_pgsql.x86_64 2.0.3-10.1.el6 base php-pear-MDB2-Driver-pgsql.noarch 1.5.0-0.7.b4.el6.remi remi php-pgsql.x86_64 5.5.25-1.el6.remi remi-php55 php54-php-pgsql.x86_64 5.4.41-1.el6.remi remi php55-php-pgsql.x86_64 5.5.25-1.el6.remi remi php56-php-pgsql.x86_64 5.6.9-1.el6.remi remi rsyslog-pgsql.x86_64 5.8.10-10.el6_6 updates rsyslog7-pgsql.x86_64 7.4.10-3.el6_6 updates uuid-pgsql.x86_64 1.6.1-10.el6 base # yum --enablerepo=remi --enablerepo=remi-php55 install php-pgsql 《省略》 インストール: php-pgsql.x86_64 0:5.5.25-1.el6.remi 依存性を更新しました: php.x86_64 0:5.5.25-1.el6.remi php-cli.x86_64 0:5.5.25-1.el6.remi php-common.x86_64 0:5.5.25-1.el6.remi php-gd.x86_64 0:5.5.25-1.el6.remi php-mbstring.x86_64 0:5.5.25-1.el6.remi php-mcrypt.x86_64 0:5.5.25-1.el6.remi php-pdo.x86_64 0:5.5.25-1.el6.remi php-process.x86_64 0:5.5.25-1.el6.remi php-xml.x86_64 0:5.5.25-1.el6.remi 完了しました! #
インストール完了。PHP関連が一緒に色々アップデートされた。それから httpd を再起動。
"php -i" を見ると、pdo_pgsqlが入っている。
ちなみに、PHPの拡張モジュールの共有ライブラリ自体のディレクトリは
/usr/lib64/php/modules
設定ファイルのディレクトリは
/etc/php.d
これで最初のプログラムを実行すると、ちゃんと接続できてクエリの結果が返ってきた。
参考ページ:
PHP/PDOを使ってPostgreSQLに接続する - 調べる.db
PHP: PDO - Manual
PHP: PostgreSQL (PDO) - Manual
« PHPでメールを送信したら一部のOutlookで受信したメールでヘッダがおかしくなった | Main | CakePHPのインストール »
「PHP」カテゴリの記事
- PHPStorm 2018.1.7 に更新(2018.12.09)
- PHPメモ051:includeとrequireの使い分け(2015.06.19)
- CakePHPのインストール(2015.06.14)
- PHPからPDOでPostgreSQLに接続する(2015.06.09)
- PHPでメールを送信したら一部のOutlookで受信したメールでヘッダがおかしくなった(2015.05.31)
「PostgreSQL」カテゴリの記事
- CakePHPのインストール(2015.06.14)
- PHPからPDOでPostgreSQLに接続する(2015.06.09)
- PostgreSQLのインストール その2(2015.03.29)
- PostgreSQLのインストール その1(2015.03.23)
- 列の値を使って日時に「+n日」する(2015.02.04)
「Linux」カテゴリの記事
- CakePHPのインストール(2015.06.14)
- PHPからPDOでPostgreSQLに接続する(2015.06.09)
- Laravel4のインストール(2015.05.06)
- URLリライトの復習その2(2015.04.07)
- composerのインストール(2015.04.01)
The comments to this entry are closed.
« PHPでメールを送信したら一部のOutlookで受信したメールでヘッダがおかしくなった | Main | CakePHPのインストール »
Comments