2011-06-23 38 views
0

嗨,我用我的數據庫的MySQL。只是我試圖通過循環連接MySQL數據庫,但失敗了,我不能,是否有任何otherway做到這一點如何連接MySQL Db通過循環

我試的代碼是這樣

while($row = mysql_fetch_array($query)) { 

    $temp = "db".$row["listid"]; 
    $temp = mysql_connect("localhost","root","", true); 
    mysql_select_db($row["databasename"],$temp); 
} 

是任何其他的方式來做到這一點。

+6

請問爲什麼?? – alex

+0

這是什麼意思? –

+0

因爲我打算把我所有的應用程序都集成到一個管理控制中,只需要一次登錄就可以了管理所有數據庫相關的行爲,我有超過6個數據庫它不難編寫evey數據庫的單獨mysql_connect語句,它只是嘗試。在我的知識中,我知道這是不可能的,但一些天才有這個想法..所以我問這個問題。 – Kannan

回答

1

嘗試:

$res = mysql_query($query); 
while($row = mysql_fetch_array($res)) { 
    $name = "db".$row["listid"]; 
    $temp = mysql_connect("localhost","root","", true) or die('Could not connect: ' . mysql_error()); 
    mysql_select_db($row["databasename"],$temp); 
    $res = mysql_query($query, $temp); 
} 

,並告訴我們你的錯誤 - 但是,作爲第一個評論,這是極不建議

+0

感謝您的回覆Tudor Constantin - mysql_connect語句不顯示任何具體錯誤,錯誤是「mysql_fetch _array提供的參數不是validargument或沒有找到數據庫連接」。例如我有5個數據庫通過循環我想要像這樣,爲數據庫1連接$ db1,爲數據庫2連接$ db2。如果我使用上面的代碼,它只是在變量名稱$ temp中創建一個連接。 – Kannan

+0

我修改了代碼 - 它設置了一個初始的'$ res'作爲結果集,然後在它改變它的時候 - 這是你想要的嗎?也許你需要在主內部另外一個'while' –

+0

'$ res'被while循環覆蓋。 – Arvin

0

你只需要一個數據庫連接。

一旦連接到數據庫,它就可以用於該頁面的生命週期(請求)。

如果您需要切換數據庫,也將使用相同的連接(除非需要不同的憑據。

如果是跨數據庫查詢,如果它們是相同的MySQL服務器上,並且初始連接的用戶那麼你可以用數據庫名稱爲數據庫表加上前綴