无法使用pg_connect将php连接到postgres数据库

时间:2014-07-13 18:42:34

标签: php database postgresql connection

我只是尝试将我的php代码连接到postgres数据库但不幸的是它不起作用,这是我的代码:

<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
   $host        = "host=127.0.0.1";
   $port        = "port=5432";
   $dbname      = "dbname=public";
   $credentials = "user=postgres password=postgres";

   $db = pg_connect( "$host $port $dbname $credentials"  ) or die('Could not connect');;
   if(!$db){
      echo "Error : Unable to open database\n";
   } else {
      echo "Opened database successfully\n";
   }

浏览器结果:

警告:pg_connect():无法连接到PostgreSQL服务器:致命:第11行/var/www/test/pgtest.php中不存在数据库“public”

有人知道这里有什么问题吗?

3 个答案:

答案 0 :(得分:1)

您确定数据库的名称是&#39; public&#39;?正如我记得的那样,公众&#39;是PostgreSQL数据库中默认模式的名称。

请确保数据库&#39; public&#39;确实存在。

答案 1 :(得分:1)

从命令行,成为postgres用户,启动psql,然后发出\ list命令列出数据库。确保您尝试打开的数据库在列表中。

确保您的pg_hba.conf文件允许打开数据库。

从pg_connect调用中删除除$ dbname之外的所有内容,并允许API使用默认值。按照错误消息的指示添加参数。

答案 2 :(得分:0)

抱歉,但最后我发现我的问题有误,publictestdbpostgres数据库中的方案,