2

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

4 回答 4

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";
}

您将不得不对其进行定制并决定是否要为 $sql 语句添加更多格式化项目(即在 FROM 和 ORDER BY 之前添加换行符等),但应该让您开始。

于 2010-08-09T20:44:11.470 回答
2

我不确定这是否可行..

来自 mysql 的所有错误消息都是从这个文件中呈现的,仅share/errmsg.txt

错误消息信息列在 share/errmsg.txt 文件中。%d 和 %s 分别代表数字和字符串,它们在显示时被替换为 Message 值。

示例错误消息是 %s 在第 %d 行的 '%s' 附近

因此,如果我们可以在 errmsg.txt 的所有错误消息中添加一些内容,那么我们可以检查 php mysql_error 函数返回的字符串中的匹配字符串,然后将它们设为粗体或斜体..

我认为之前没有写过具体的课程..

您应该从头开始并将其制作到您自己的服务器上。

于 2010-08-19T07:32:34.827 回答
1

也许跑题了,但我不认为开发过程中最常见的错误是 SQL 错误。由于通常显示错误,我安装了 xDebug,它处理错误消息的“精细”调整。

于 2010-08-15T23:18:06.763 回答
0

从网站尝试http://krumo.sourceforge.net/ :

简单地说,Krumo 是 print_r() 和 var_dump() 的替代品。根据定义,Krumo 是一个调试工具(最初用于 PHP4/PHP5,现在仅用于 PHP5),它显示有关任何 PHP 变量的结构化信息。

于 2010-08-19T09:05:37.853 回答