我需要连接到提供一些凭据的 PostgreSQL 服务器,并为给定用户打印该主机上可用数据库的列表。
我在努力:
<?php
$connection = pg_connect("host=localhost user=testuser password=123 connect_timeout=5");
?>
然后我得到了:
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
我认为这是可能的,因为 phpPgAdmin 可以做到这一点,但是我查看了 phpPpAdmin 源代码,发现它们连接到一个名为 template1
的数据库。
来自 http://www.postgresql.org/docs/8.1/interactive/manage-ag-templatedbs.html:
CREATEDATABASE 实际上是通过复制现有数据库来工作的 默认情况下,它复制名为 template1的标准系统数据库 该数据库就是构建新数据库的“模板” 将对象添加到 template1,这些对象将被复制到 随后创建用户数据库。此行为允许站点本地 修改数据库中的标准对象集 例如,如果在 template1中安装工作语言 PL/pgSQL, 它将自动在用户数据库中可用,不需要任何额外的 当这些数据库建立时所采取的行动。
有没有不指定任何数据库的连接方法?