2013-06-24 47 views
0

我已經在我的Ubuntu(linux mint)上安裝了php5和php5-pgsql。我不能在PHP腳本中獲取查詢結果:「php致命錯誤」使用pg_connect

$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所有DB連接屬性是正確的!

但我得到這個錯誤:

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

有什麼問題,請幫忙!

+0

您是否考慮過使用PDO? –

+0

不,我想解決這個問題儘可能簡單... –

回答

0

嘗試啓用的pgsql在php.ini文件

在擴展

加入這一行
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 

} 
+0

我這樣做,但沒有任何變化。我應該重新啓動任何東西嗎?) –

+0

我沒有apache –

+0

你運行什麼webserver?嘗試重新啓動您擁有的任何Web服務。 –

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

+0

非常感謝,我真的混合了這個功能,來自不同的例子) –