Печать информативных, хорошо отформатированных ошибок mysql в PHP
Ошибки Mysql являются одними из наиболее распространенных, которые вы видите во время разработки, и я ищу приятный и информативный способ их вывода.
У phpMyAdmin, по-видимому, есть приличный симпатичный принтер для запросов MySQL:
Проанализированный запрос http://img706.imageshack.us/img706/2873/clipboard02a.png
Однако он выводит ошибки в виде простого текста:
Вывод ошибок http://img683.imageshack.us/img683/1577/clipboard03g.png
В то время как в в последнем примере текст после for the right syntax to use near
мог быть выделен в запросе. Вот так:
Альтернативный текст http://img710.imageshack.us/img710/2839/clipboard03z.png
Несмотря на то, что это короткий запрос, вы сразу видите, что прямо перед текстом есть лишняя запятая. Выполнение этого в гораздо больших запросах может значительно повысить читабельность, я удивлен, что многочисленные поиски по этому вопросу ничего не дали.
Вопрос в одном предложении: Используете ли вы или знаете любого такого класса PHP, который отображает довольно много ошибок mysql для целей отладки?
4 answers
Я не уверен, сработает ли это..
Все сообщения об ошибках из mysql выводятся только из этого файла share/errmsg.txt
Информация о сообщении об ошибке указана в share/errmsg.txt файл. %d и %s представляют числа и строки соответственно, которые подставляются в значения сообщений при их отображении.
Пример сообщения об ошибке будет выглядеть следующим образом: %s рядом с "%s" в строке %d
Так что, если мы сможем что-то добавить во все ошибки сообщения на errmsg.txt , затем мы можем проверить соответствие строки в строке, возвращаемой функцией php mysql_error, затем выделите их жирным шрифтом или курсивом..
Я думаю, что раньше не было написано определенного класса..
Вы должны начать с нуля и перейти на свой собственный сервер.
Это действительно довольно тривиально для вас, чтобы сделать это с помощью пользовательской функции:
function printPrettyError($sql, $error) {
$display = preg_replace("~^(.*to use near ')(.*)(' at line [0-9]+)$~s", '$1<u>$2</u>$3', $error);
$display .= "<br />$sql";
}
Вам нужно будет настроить его и решить, хотите ли вы добавить больше элементов форматирования в инструкцию $sql (т.Е. Добавить разрывы строк до и УПОРЯДОЧИТЬ ПО и т.д.) Но это должно дать вам начало.
Возможно, не по теме, но я не думаю, что наиболее распространенными ошибками во время разработки являются ошибки SQL. В качестве отображения ошибок в целом у меня установлен xDebug, и он обрабатывает "точную" настройку сообщений об ошибках.
Попробуйте http://krumo.sourceforge.net / с веб-сайта:
Проще говоря, Krumo является заменой print_r() и var_dump(). По определению Krumo - это инструмент отладки (первоначально для PHP4/PHP5, теперь только для PHP5), который отображает структурированную информацию о любой переменной PHP.