我試圖實例化一個PDO對象是這樣的:PHP PDO連接失敗拋出警告,腳本執行超時
$this->pdo['pdo'] = new PDO('mysql:host=127.0.0.1;dbname=mydb;charset=UTF-8',
'myuser', 'my pass');
我想趕上我以爲會被拋出的異常時,MySQL服務器沒有運行。
PHP.net說:「如果嘗試連接到所請求的數據庫失敗,則PDO :: __ construct()拋出PDOException。」
但是如果我關閉了數據庫服務器,並運行該腳本我得到的是一個警告:
Warning: PDO::__construct() [pdo.--construct]: [2002] 'A connection attempt failed
because the connected party did not properly respond after a period of time, or
established connection failed because connected host has failed to respond.' in
C:\test\test.php on line 5
Fatal error: Maximum execution time of 60 seconds exceeded in C:\test\test.php
on line 0
沒有拋出異常。
是否有捕獲錯誤的直接方式(沒有臨時設置的麻煩自定義錯誤管理器功能?)
謝謝!
執行時間超過了一個致命的錯誤如果可能的話,只要將「重要」位放入錯誤處理程序,人們可以輕鬆地繞過時間限制並運行腳本。 –
我剛剛發現解決方案: ' $ this-> pdo ['pdo'] = new PDO('mysql:host = 127.0.0.1; dbname = mydb; charset = UTF-8','myuser','my pass',array(PDO :: ATTR_TIMEOUT = >「10」));' 最後一個參數(attributes數組)允許我指定一個比PHP的最大執行時間短的超時。然後異常拋出確定。 –