2013-04-15 37 views
1

我使用PHP和PDO對象連接到mysql。我有3個DB服務器,我的PHP代碼可以連接到。如果我嘗試連接到數據庫服務器#1並且連接失敗,我想立即嘗試連接到數據庫服務器#2。下面的代碼可以設置連接超時時間的最低值爲1秒。設置PDO連接超時時間少於1秒

$DBH = new PDO("mysql:host=$host;dbname=$dbname", $username, $password,array(PDO::ATTR_TIMEOUT => "1",PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

理想情況下,我想的超時時間設置爲< 50毫秒。或者如果可能的話,0ms。有沒有辦法做到這一點?

+3

0ms - 給它沒有時間連接?你確定你瞭解超時? – Ashley

回答

0

我認爲這是不可能的設置使用毫秒爲單位。請參閱mysql.connect_timeoutphp doucmnetation

mysql.connect_timeout:

以秒計的連接超時。在Linux上,此超時也用於等待來自服務器的第一個答案。

順便說一句,我認爲你要做的事情聽起來有點hacky給我。如果您有專業要求,我會使用負載平衡器。你可以按照這個tutorial

+0

如果其中一臺服務器處於脫機狀態,該怎麼辦? Php正在等待連接到MySQL 1秒...延遲該服務器上的其他請求 –

+0

@FrancisSnipe你是對的。我在答覆中沒有尊重這一點。將更新它。 – hek2mgl