我需要连接到一些提供一些凭据的PostgreSQL服务器,并在该主机上为给定用户打印可用数据库列表.
我在尝试:
<?php
$connection = pg_connect("host=localhost user=testuser password=123 connect_timeout=5");
?>
Run Code Online (Sandbox Code Playgroud)
我得到:
Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: database "testuser" does not exist in /var/www/test.php on line 56
Run Code Online (Sandbox Code Playgroud)
我认为这一定是可能的,因为phpPgAdmin做到了,但我查看了phpPpAdmin源代码,发现它们连接到一个名为的数据库template1.
来自http://www.postgresql.org/docs/8.1/interactive/manage-ag-templatedbs.html:
CREATE DATABASE实际上通过复制现有数据库来工作.默认情况下,它复制名为template1的标准系统数据库.因此,该数据库是制作新数据库的"模板".如果向template1添加对象,则会将这些对象复制到随后创建的用户数据库中.此行为允许对数据库中的标准对象集进行站点本地修改.例如,如果在template1中安装过程语言PL/pgSQL,它将自动在用户数据库中可用,而在制作这些数据库时不会采取任何额外操作.
有没有指定任何数据库连接的方法?
Mil*_*dev 76
您必须连接到数据库.可用于"维护数据库"的数据库取决于安装和后续管理.在默认安装之后,有2个可用于初始连接的数据库 - "template1"和"postgres".创建一个具有相同名称的新用户和数据库并使用它们是明智的.
正如pg_connect 手册所说,连接字符串中的 dbname 参数默认为 user 参数的值。这就是它使用“testuser”的原因。如果您希望 dbname 为空,请尝试"... dbname='' ...".
| 归档时间: |
|
| 查看次数: |
27484 次 |
| 最近记录: |