2013-01-08 87 views
0

PHP中的pg_query和pg_query_params可以在參數列表中沒有指定連接資源的情況下執行,所以PHP將使用pg_connect的最後一個連接開放。PHP Postgres默認連接

有沒有一種方法來檢索默認連接字符串,PHP將使用intead來試圖找出它來自哪幾個PHP文件?類似於get_default_dbConnection()?

謝謝。

+0

可能是值得給予'PG-選項()'一試獲得數據庫名或用戶信息,但我不是很確定什麼樣的數據,它會給你(也你實際上是什麼數據)。 –

回答

1

這並不意味着有一個默認的連接字符串,但你不必提供一個引用連接的參數。在php: pg_query

$conn = pg_pconnect("dbname=publisher"); 
if (!$conn) { 
    echo "An error occured.\n"; 
    exit; 
} 

$result = pg_query($conn, "SELECT author, email FROM authors"); 
if (!$result) { 
    echo "An error occured.\n"; 
    exit; 
} 

退房的例子在這個例子中有$conn = pg_pconnect("dbname=publisher")和調用pg_query他們通過長期$conn。這是連接參考。現在,你也可以只使用

$conn = pg_pconnect("dbname=publisher"); 
$result = pg_query("SELECT author, email FROM authors"); 

pg_query現在將自動使用最後一個打開的連接(這是$康恩)

更新:

你不能獲取資源,PHP使用內部方法php_pgsql_get_default_link獲取默認連接但不會將其返回到任何位置(請參閱源中的php-5.4.9\ext\pgsql\pgsql.c)。

可以使用pg_dbnamepg_parameter_status

+0

假設在一個PHP文件中遇到下面這行: $ result = pg_query(「SELECT author,email FROM authors」); 我在問什麼是如何獲得在pg_query中使用的連接資源,而無需追溯代碼來找到最後一個pg_connect ... – user1845360

+0

您無法獲取資源,'PHP'使用內部方法'php_pgsql_get_default_link'獲取默認連接但不會返回任何地方(php-5.4.9 \ ext \ pgsql \ pgsql.c)。您可以使用'pg_dbname'或'pg_parameter_status'獲取關於數據庫名稱或用戶的信息 –