0

我已经在我的 ubuntu(linux mint)上安装了 php5 和 php5-pgsql。而且我无法在 php 脚本中得到查询结果:

$db = pg_connect("host=localhost port=5432 dbname=test user=user")
or die("Could not connect: test db\n"); 
$part = $db->query("SELECT * FROM app_settings");

此查询工作正常,在 pg_admin 中运行并且所有数据库连接属性都是正确的!

但我得到了这个错误:

PHP Fatal error:  Call to a member function pg_query() on a non-object in

有什么问题,请帮忙!

4

2 回答 2

1

您正在混合 pg_* 函数和 PDO。pg_connect()不返回一个对象,它返回一个连接资源供以后使用pg_query()。你可以这样做:

$res = pg_connect(...);
$result = pg_query($res, "SQL query"); // where $res is optional if you only use one connection at a time
while ($row = pg_fetch_row($result)) {
  // ...
}

或者你使用 PDO

$db = new PDO("...");
$db->query("SQL query");
// ...

我更喜欢带有准备好的语句的 PDO

于 2013-06-24T08:35:51.407 回答
0

尝试在 PHP.ini 文件中启用 pgsql

在扩展中添加这一行

extension=pgsql.so

更新:

不确定这是否正确。那这个呢。

$db = pg_connect("host=localhost port=5432 dbname=test user=user")
or die("Could not connect: test db\n"); 
$part = pg_query($db, "SELECT * FROM app_settings");

while ($row = pg_fetch_array($part)) {
 //do stuff

}
于 2013-06-24T08:14:15.130 回答