【发布时间】:2010-10-16 06:26:22
【问题描述】:
我正在尝试运行以下 PHP 脚本来执行简单的数据库查询:
$db_host = "localhost";
$db_name = "showfinder";
$username = "user";
$password = "password";
$dbconn = pg_connect("host=$db_host dbname=$db_name user=$username password=$password")
or die('Could not connect: ' . pg_last_error());
$query = 'SELECT * FROM sf_bands LIMIT 10';
$result = pg_query($query) or die('Query failed: ' . pg_last_error());
这会产生以下错误:
查询失败:错误:关系“sf_bands”不存在
在所有示例中,我都可以找到有人收到错误声明关系不存在的地方,这是因为他们在表名中使用了大写字母。我的表名没有大写字母。有没有办法在不包括数据库名称的情况下查询我的表,即showfinder.sf_bands?
【问题讨论】:
-
您确定 sf_bands 表存在吗? showfinder.sf_bands 有效吗?
-
showfinder.sf_bands 完美运行
-
也许我应该注意到我的数据库是从 MySQL 迁移过来的
-
你可以试试 pg_query($dbconn, $query) 吗?隐式连接可能会导致难以调试的问题,不妨将其作为可能的问题消除。您是否也可以尝试 pg_dbname($dbconn) 以确保它确实连接到 showfinder?
-
+1 表示大写字母是问题所在。我花了一个小时试图弄清楚为什么我不能从 PostgreSQL 中的单个表中进行选择。多么糟糕的程序。
标签: php sql postgresql quoted-identifier