2013-02-15 59 views
1

我有一個使用php,使用mysqli函數與MySql數據庫交互的網頁。我想要禁止來自MySql和Php的所有錯誤消息,並將這些錯誤記錄在數據庫中以進行跟蹤和記錄。很顯然,我不希望MySql查詢彈出以供用戶查看,我需要一個自定義消息。就像「服務器錯誤:請再試一次」。Php Mysqli自定義錯誤消息

有沒有什麼方法可以將這個實現到我的網站?

+0

請發佈您的現有代碼。如果你正在做可怕的約定'do_thing()或者死亡(mysql_error())',那麼解決方案就是不這樣做,而是測試成功/失敗並向最終用戶返回有意義的消息。 – 2013-02-15 17:42:13

回答

1

以下示例可能會幫助您消除用戶的錯誤消息。

<?php 
mysqli_report(MYSQLI_REPORT_OFF); //Turn off default messages 

$mysqli = new mysqli("localhost", "user", "password", "database"); 

$query = "SELECT * FROM Table "; 
$res = $mysqli->query($query); 

if ($mysqli->error) { 
    try {  
     throw new Exception("MySQL error $mysqli->error <br> Query:<br> $query", $msqli->errno);  
    } catch(Exception $e) { 
     // Log your error in db or just output it 
     // using $e->getMessage() to log the actual message; 
     echo nl2br($e->getTraceAsString()); 
    } 
} 

?>