使用pg_connect“php致命错误”

时间:2013-06-24 07:59:52

标签: php

我已经在我的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

问题是什么,请帮忙!

2 个答案:

答案 0 :(得分: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 with prepared statements

答案 1 :(得分: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

}