2012-08-22 62 views
-1

比方說,我做了odbc_connect方法,故意使用錯誤的信息,如下所示:現在從odbc_connect呼叫禁止PHP錯誤

<?PHP odbc_connect('bogus','bogus','bogus'); ?> 

the manual指出odbc_connect「[R] eturns ODBC連接ID或0 (錯誤)「。我可以返回0,但是當我運行該文件時(使用Wampserver),我還收到錯誤消息,告訴我出現了問題。

我想壓制這個錯誤信息,因爲我是trying to build a PHP file,只有當數據庫調用的信息錯誤時,纔回應某個文本,比如「不成功」。

回答

2

您可以使用錯誤抑制操作@

<?php 
    $conn = @odbc_connect('bogus','bogus','bogus'); 
?> 
+1

正確處理異常不是更好,而不是「忽略」它嗎? – Matt

+0

@Matt:'故意使用錯誤的信息'。如果你知道這是拋出一個錯誤,並故意拋出一個,誰在乎? :-P –

+1

我認爲OP是故意使用錯誤的信息,以便他可以「看到」錯誤並編寫代碼來處理它。一旦完成,在我看來,OP將使用有效的信息,以便他覆蓋所有的基礎。 – Matt

4

使用try-catch

<?php 
try { 
    odbc_connect('bogus', 'bogus', 'bogus'); 
} catch (Exception $e) { 
    // handle your exception 
} 
+0

處理這種情況的最佳方式 - 捕捉錯誤(可能)對它做些事情並讓腳本繼續。 – Fluffeh

+0

你會建議我怎麼處理這個錯誤?這基本上是腳本跨越很多不同登錄選擇的基本步驟,其中大部分都是錯誤的。我仍在使用if語句來確定調用是否成功。 – Speldosa

+0

@Speldosa你可以做很多事情 - 在日誌中寫入錯誤並將用戶重定向到錯誤屏幕可能是最好的。像「OOPS!你打破了我們的網站!跆拳道?!」 – Matt

3

您還可以使用@對一行取消錯誤消息 - 但它是不是好的做法。

<?PHP @odbc_connect('bogus','bogus','bogus'); ?> 

錯誤消息是有原因的,不要理他們。使用類似@Matt的建議,並根據需要對其進行陷阱 - 而不僅僅是將它們封鎖。