我想連接到我的數據庫(遠程服務器),其中安裝了PostgreSQL。我的PHP代碼嘗試使用pg_connect()連接到數據庫,但出現以下錯誤消息: - 「致命錯誤:調用第82行/var/www/website/functions.php中的未定義函數pg_connect()」。致命錯誤:調用未定義的函數pg_connect()
線82簡單地說就是:
$db = pg_connect($conn_string);
where $conn_string = "host=".$hostname." port=5432 dbname=".$dbname." user=".$db_user." password=".$db_password.""
(所有早期定義的變量)
我檢查過很多論壇和唯一的解決辦法是建議定位包含一行php.ini文件 - 擴展= pgsql.so(對於UNIX)和extension = php_pgsql.dll(對於Windows)。
此聲明應該被評論,解決方案是取消註釋。我已經嘗試過,但仍然沒有改變這種情況。遠程服務器的版本比安裝的PostgreSQL v9.0.4晚。 然後,我將PostgreSQL v8.4.8安裝到我的筆記本電腦上,並使用MAMP在本地運行網站。起初,阿帕奇因爲某種奇怪的原因墜毀了,我修復了這個問題,但我又一次遇到了與之前相同的錯誤,即致命錯誤:調用未定義的函數pg_connect()...
我也跑了phpinfo()
和它表明php版本支持PostgreSQL模塊。我花了整整一天的時間搜索解決方案,但一直沒有成功。這是我開發一個網站的第一個項目,我沒有任何智慧。任何有點幫助將不勝感激。
的phpinfo()給了我一個巨大的在終端上的東西,但有關PostgreSQL的房源清單如下: -
pdo_pgsql
PDO Driver for PostgreSQL => enabled
PostgreSQL(libpq) Version => 9.0.4
Module version => 1.0.2
Revision => $Id: pdo_pgsql.c 306939 2011-01-01 02:19:59Z felipe $
pgsql
PostgreSQL Support => enabled
PostgreSQL(libpq) Version => 9.0.4
Multibyte character support => enabled
SSL support => enabled
Active Persistent Links => 0
Active Links => 0
Directive => Local Value => Master Value
pgsql.allow_persistent => On => On
pgsql.auto_reset_persistent => Off => Off
pgsql.ignore_notice => Off => Off
pgsql.log_notice => Off => Off
pgsql.max_links => Unlimited => Unlimited
pgsql.max_persistent => Unlimited => Unlimited
我每次編輯我做了,因爲它是在每一個提到後重新啓動MAMP我已閱讀到目前爲止。我相信重置Apache和PHP。
'pqsql.so'(這是Windows中'php_pqsql.dll'的UNIX等效物)存在於'extension'目錄中。我也將'pqsql.so'文件複製粘貼到Apache/bin目錄,但它沒有給我任何改變。
我沒有在命令行中主要運行php。我只是很好奇,看看我在上面的回覆中提到的phpinfo()會給我提供與pgsql相關的東西。
我仍在處理您提到的工具,並會盡快回復我收到的任何結果。
感謝, ^ h
什麼是'phpinfo()'顯示完全與PostreSQL有關?您是否重新啓動了中間的Web服務器? –
+1用於運行phpinfo()。毫無疑問,這將顯示pgsql擴展未加載。您可能需要在php.ini中指定擴展名的完整路徑,然後重新啓動apache。 – Brendan