2011-11-07 36 views
0

我希望這個問題不是太簡單,我試圖通過postgresql和mysql php頁面,但我不太明白。什麼是mysql_connect + mysql_select_db組合的pg等價物?

如果您使用PHP和MySQL,你可以做這樣的事情:

$_connectionID = @mysql_connect(
     $dbConnectionConfig['host'], 
     $dbConnectionConfig['user'], 
     $dbConnectionConfig['pass'], 
     true 
    ); 
@mysql_select_db($dbName, $_connectionID); 

Uhmm,兩個快速的問題:

  1. 什麼做上述的意義呢?爲什麼不一次只用mysql_pconnect一次完成所有工作?

  2. true in mysql_connect是做什麼用的?它是否允許您同時打開多個數據庫連接?

現在,你將如何去在PostgreSQL中做這件事?我知道pg_connect,但這需要指定db名稱,所以它更多的是與mysql_pconnect等效。另外,我知道mysql php語法中的@在失敗的情況下基本上隱藏了錯誤。 @也適用於postgres嗎?

感謝您的時間,祝您有美好的一天。

回答

3
  1. 沒有理由不爲
  2. 你不需要true
    • true如果它是一個新的連接鏈路,並且已經取得前一個鏈接時,才需要。
  3. 取出@符號,因爲他們阻止任何PHP警告可能出現
+0

這樣,沒有Postgres的PHP連接到服務器,然後連接到數據庫的方法嗎? 此外,是否將'PGSQL_CONNECT_FORCE_NEW'傳遞給'pg_connect',就像將'True'傳遞給'mysql_connect'一樣? 謝謝你的時間。 – zermy

+4

在PostgreSQL中,您總是*連接到數據庫,而不是連接到數據庫集羣。如果您不知道要連接哪個數據庫,那麼有默認的維護數據庫「postgres」。 –

+0

@ErwinBrandstetter我明白了,謝謝,這很有道理。 呃,這有些微不足道,但我不想提出新的問題。我知道'mysql_real_escape_string'的等價物是'pg_escape_string'和'pg_escape_bytea',但是如何處理將數據插入常規列和bytea列的查詢?你是否將查詢傳遞給'pg_escape_bytea',然後傳遞給'pg_escape_string'? – zermy

相關問題