【发布时间】:2011-05-27 20:33:37
【问题描述】:
我需要连接到一些提供一些凭据的 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:
CREATE DATABASE 实际上是通过复制现有数据库来工作的。经过 默认情况下,它会复制名为 template1 的标准系统数据库。因此 该数据库是创建新数据库的“模板”。如果 您将对象添加到 template1,这些对象将被复制到 随后创建了用户数据库。此行为允许站点本地 修改数据库中的标准对象集。为了 例如,如果您在模板 1 中安装过程语言 PL/pgSQL, 它将自动在用户数据库中可用,无需任何额外的 建立这些数据库时正在采取的行动。
有没有不指定任何数据库的连接方式?
【问题讨论】:
标签: php postgresql