アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【PHPMySQLPostgreSQL
ソースからインストールしたPHPにPDO版MySQLとPostgreSQLを組み込む
POSTED BY
2024-05-14

configure時に、--with-pdo-mysql --with-pdo-pgsqlをつける。

make clean
./configure --enable-mbstring --with-openssl --with-iconv=/usr/local --with-apxs2=/usr/bin/apxs2 --enable-zts --with-pdo-mysql --with-pdo-pgsql
make clean
make
sudo make install

phpinfoの確認。以下phpinfo.phpを作成する。

<?php
phpinfo();
?>

PDO関係はどうなっているか確認する。

php phpinfo.php | grep PDO
PDO
PDO support => enabled
PDO drivers => pgsql, sqlite, mysql
PDO Driver for MySQL => enabled
PDO Driver for PostgreSQL => enabled
PDO Driver for SQLite 3.x => enabled
Firebird driver for PDO => Ard Biesheuvel
MySQL driver for PDO => George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
ODBC driver for PDO => Wez Furlong
Oracle (OCI) driver for PDO => Wez Furlong
PostgreSQL driver for PDO => Edin Kadribasic, Ilia Alshanetsky
SQLite 3.x driver for PDO => Wez Furlong

PostgreSQL、MySQLともにドライバがインストールされたようだ。接続コードはdbquery先頭にmysql:かpgsql:をつければOK

<?php
$dbuser = 'hogedbuser';
$dbpass = 'hogedbpass';
$dbhost = '127.0.0.1';
$dbname = 'hogedbname';
$dbquery = "mysql:host=$dbhost;dbname=$dbname;";
// $dbquery = "pgsql:host=$dbhost;dbname=$dbname;";
try {
  $dbconn = new PDO($dbquery, $dbuser, $dbpass);
  //ok
  echo "connection success\n";
  $sql = 'select count(*) from zipdata';
  foreach ($dbconn->query($sql) as $row) {
       print($row['count']);
  }
  //close
  $dbconn = null;
}
catch (PDOException $e) {
  echo 'connection error: ' . $e->getMessage() . "\n";
}

実行

connection success 115555
# 失敗時
connection error: SQLSTATE[HY000] [1698] Access denied for user 'hogedbuser'@'localhost'
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】