php+pgsql

今天试用了下postgresql,这里将遇到的问题做个备忘。

  1. 安装,不多说了,参考官方的下载页面就有说。基本的语句,可以参考阮一峰老师的博客,PostgreSQL新手入门,很好的入门教程。

  2. 使用php连接pgsql。我使用的是pdo连接。
    运行命令yum install php-pgsql,就会自动安装好扩展。可以使用命令php -m | grep pgsql查看是否安装成功。

  3. 遇到的问题是连接时报Ident authentication failed for user "xxx"错误,解决方法是# vi /var/lib/pgsql/data/pg_hba.conf,把ident改为trust

    local all all trust
    host all 127.0.0.1/32 trust

示例代码:

//注意,这里的host不能用localhost,否则也会报上面的错误。
$dsn = 'pgsql:dbname=exampledb;host=127.0.0.1;port=5432;';
try {
    $dbuser   = 'dbuser';
    $password = '123456';
    $dhb = new PDO($dsn, $dbuser, $password);
    $stmt = $dhb->prepare("select * from use_tbl");
    $stmt->execute();                                                                                                    
    print_r($stmt->fetchAll(PDO::FETCH_ASSOC));
} catch (PDOException $e) {
    print "Error!:" . $e->getMessage() . "\n";
}
2014-09-13 21:4470