PHPからpostgreSQL呼び出し

POD設定

PHPからDBを呼び出すのにPODなるものを使うらしい。
のだが、PHPpostgreSQLも初めてだから全くわからない…

とりあえずここでやってることを、自分の環境でもやってみたメモ

php.iniの編集

PDOはphp5.1以降はデフォルトで入っているので、設定を弄ってあげるだけでおk
当方環境(PHP Version 5.2.10-2ubuntu6.4)では/etc/php5/apache2 以下にあるphp.iniを以下のように編集。
最悪の場合を考慮してバックアップを取っておく。

http://gyazo.com/ad1fc6d08ff262b0f1134de71d831361.png

この3行を追加すればいいみたい。

PDOの中身については割愛

あとはサイトにあるテーブルを作成して、phpコードをpgsql用に少し書き換えるだけ。

<?
try {
    $pdo = new PDO('pgsql:host=localhost dbname=データベースの名前',
                   'ユーザー', 'パスワード');
    $stmt = $pdo->query("SELECT * FROM CD");

    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        echo implode(", ", $row) . PHP_EOL;
    }
} catch (PDOException $e){
    var_dump($e->getMessage());
}

$pdo = null;
?>

はまったところ

パスワード設定を忘れずに。

USER:postgresでアクセスしてたんだけど、どうもDBにアクセスできなかった。

原因はUSER:postgresのパスワード設定漏れ。


アカウント:postgresの方はパスワード設定してたんだけど、

DB USERの方のpostgresにもパスワードがいる。

紛らわしい。


設定はpsqlから

postgres# template1=# ALTER USER postgres WITH ENCRYPTED PASSWORD '****';

で、再挑戦したら

やっとできた。

変なところではまってもったいなかったなー