2013-11-03 25 views
0

我在這裏給你一些有趣的內容,因爲我研究了所有的stackoverflow,但是沒有人問過類似的問題! 讓我們去描述:在PHP中,需要很多時間來捕捉異常

我想連接一個簡單的mysql數據庫到我的服務器使用php。 從現在開始我可以說這個問題與PDO和mysql_connect方法都存在。 現在我將向您解釋:

在典型的「TRY-CATCH」塊中,我想測試錯誤消息中的一些例外情況。所以,我不喜歡的東西如下:

try { 
$db = new PDO("mysql:host=localhost;dbname=shirts4mike;","root","ffredda"); 
$db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$db -> exec("SET NAMES 'utf8'"); 
} catch (Exception $e) { 
echo "Could not connect to the database."; 
exit; 
} 

現在,爲了測試該錯誤信息,我試圖改變主機:

host=Wronghost; 

,並刷新本地服務器上運行的網頁(apache2的) 。

在這裏我們解決問題!在我的瀏覽器捕獲異常並加載錯誤消息之前,需要兩分鐘的時間。

我對此變得瘋狂了!我不知道它取決於什麼!我認爲這是服務器嘗試多次連接數據庫,然後放棄並拋出異常!但是,如果這是問題,如何限制這些嘗試呢?如果這不是問題,那麼有人對於在哪裏尋找並解決問題有所瞭解?誰是負責任的? MySQL的? Apache的? PHP代碼(我懷疑)?

我真的很感激任何幫助。真。 謝謝安維威,希望能儘快聽到別人的消息!

--Fabrizio

+0

問題標題是錯誤解釋測試結果的明顯例子。除了執行測試之外,還必須正確解釋結果 –

+0

問題是'Wronghost'的DNS查找問題,而不是使用錯誤的ip來嘗試。 – TiMESPLiNTER

+1

這可能不是DNS查找 - 負面查找應該仍然(相對)即時。這只是一個連接嘗試超時,它與異常無關。 –

回答

0

您必須在連接到數據庫時使用正確的憑據。

通過設置正確的主機名連接將非常快速並解決問題。