2011-06-13 48 views
-4

我想根據變量的值連接到不同的數據庫。是否可以根據變量的值選擇MySQL連接字符串?

我想嘗試這樣的事:

if ($city = 'phoenix') { 
    mysql_connect("x", "y", "z") or die(mysql_error()); 
    mysql_select_db("databasename") or die(mysql_error()); 
} 

if ($city = 'losangeles') { 
    mysql_connect("a", "b", "c") or die(mysql_error()); 
    mysql_select_db("databasename2") or die(mysql_error()); 
} 

這可能嗎?

+5

爲什麼不試試之前問? – zerkms 2011-06-13 22:44:00

+2

-1,因爲這不是一個真正的問題,而是「爲我嘗試這個」。無論如何我都回答。 – 2011-06-13 22:49:39

回答

1

是的。

是的。

給它一個去吧!

(雖然看你的條件語句的語法=是分配; ==是比較)。

0

是的,當然是可能的。但它確實爲維護它的人打開了另一層級的錯誤可能性和令人頭痛的問題。我公司的主應用程序是這樣寫的,這是一場噩夢。這就是說,可以有條件地設置數據庫。

或作爲託默勒格說,是的,你可以只使用完全限定值(使用dbname.tablename)

2

雖然,考慮一個switch語句。

switch ($city) { 
    case 'phoenix': 
     //do db 
     break; 
    case 'losangeles': 
     //do db 
     break; 
    default: 
     //do db 
} 
+0

+ 1明確使用此代碼,根據預先批准的白名單檢查數據庫名稱是防止數據庫名稱的SQL注入的唯一方法。 – Johan 2011-06-13 23:17:23