Печатайте информативные, хорошо отформатированные ошибки MySQL в PHP - PullRequest
2 голосов
/ 10 августа 2010

Ошибки 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 ]

6 голосов
/ 10 августа 2010

Это действительно тривиально для вас сделать это с помощью пользовательской функции:

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 (IE добавляет разрывы строк перед FROM и ORDER BY и т. Д.), Но должен дать вам начало.

2 голосов
/ 19 августа 2010

Я не уверен, будет ли это работать ..

Все сообщения об ошибках из mysql отображаются только из этого файла share / errmsg.txt

Информация об ошибке указана в файле share / errmsg.txt. % d и% s представляют числа и строки соответственно, которые подставляются в значения Message при их отображении.

Пример сообщения об ошибке: % s рядом с '% s' в строке% d

поэтому, если мы можем что-то добавить во все сообщения об ошибках в файле errmsg.txt, то мы можем проверить соответствие строки в строке, возвращаемой функцией php mysql_error , затем сделать их жирным или курсивом ..

Я думаю, что до этого не было написано ни одного конкретного класса.

Вы должны пойти с нуля и сделать это на свой собственный сервер.

1 голос
/ 16 августа 2010

Может быть, не по теме, но я не думаю, что наиболее распространенными ошибками при разработке являются ошибки SQL.Как отображение ошибок в целом у меня установлен xDebug, и он обрабатывает "тонкую" настройку сообщений об ошибках.

0 голосов
/ 19 августа 2010

Попробуйте http://krumo.sourceforge.net/ с сайта:

Проще говоря, Krumo является заменой для print_r () и var_dump (). По определению Krumo - это инструмент отладки (первоначально для PHP4 / PHP5, теперь только для PHP5), который отображает структурированную информацию о любой переменной PHP.

...