在PHP中打印信息丰富,格式良好的mysql错误

rav*_*ren 2 php mysql debugging pretty-print

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错误?

Jim*_* W. 6

使用自定义函数执行此操作非常简单:

function printPrettyError($sql, $error) {
    $display = preg_replace("~^(.*to use near ')(.*)(' at line [0-9]+)$~s", '$1<u>$2</u>$3', $error);
    $display .= "<br />$sql";
}
Run Code Online (Sandbox Code Playgroud)

您将不得不定制它并决定是否要为$ sql语句制作更多格式化项目(IE在FROM和ORDER BY等之前添加换行符)但是应该给你一个开始.