2013-02-15 3 views
1

У меня есть веб-страница, использующая php, которая взаимодействует с базой данных MySql с использованием функций mysqli. Я хотел бы подавить все сообщения об ошибках из MySql и Php и записывать эти ошибки в базу данных для отслеживания и истории. Очевидно, что я не хочу, чтобы запрос MySql появлялся для пользователя, чтобы увидеть его, я хочу создать специальное сообщение. Что-то вроде «Ошибка сервера: попробуйте еще раз».Php Mysqli Пользовательские сообщения об ошибках

Есть ли способ реализовать это на моем сайте?

+0

Опубликовать свой существующий код пожалуйста. Если вы делаете что-то вроде ужасного соглашения 'do_thing() или die (mysql_error()),' тогда решение должно _not сделать это_, а вместо этого проверять успех/неудачу и возвращать значимое сообщение конечному пользователю. –

ответ

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()); 
    } 
} 

?> 
Смежные вопросы