php - 在 PHP 中打印信息丰富、格式正确的 mysql 错误

标签 php mysql debugging pretty-print

Mysql 错误是您在开发过程中看到的最常见错误之一,我正在寻找一种愉快且信息丰富的方式来输出它们。

phpMyAdmin 显然有一个不错的 mySQL 查询打印机:

parsed query http://img706.imageshack.us/img706/2873/clipboard02a.png

但是,它将错误打印为简单的文本:

error output http://img683.imageshack.us/img683/1577/clipboard03g.png

而在后一个示例中,for the right syntax to use near 之后的文本可能已在查询中突出显示。像这样:

alt text http://img710.imageshack.us/img710/2839/clipboard03z.png

即使这是一个简短的查询,您也会立即看到在文本之前有一个多余的逗号。在更大的查询中这样做可以显着提高可读性,我很惊讶关于这个主题的大量搜索都没有结果。

一个句子的问题:您是否使用或知道任何这样的 PHP 类可以显示漂亮的 mysql 错误以进行调试?

最佳答案

这对您来说用自定义函数来做真的很简单:

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 等之前添加换行符等)但应该给您一个开始。

关于php - 在 PHP 中打印信息丰富、格式正确的 mysql 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3443908/

相关文章:

php - PHP 的 $_SERVER[REQUEST_TIME] 是如何设置的?

php - Laravel 5.4 中的单选按钮

mysql - 使用新生成的密码更新表中的列

node.js - 如何调试 yeoman 应用程序?

c++ - malloc() 和 malloc_consolidate() 中的段错误

PHP 错误类的对象无法转换为字符串

php - 将 $_SESSION 设置为 MySQL 查询的结果

php - 是否将表单值传递到文件中

mysql - 如何从同一个表运行多个限制为 0, 1 的选择查询并合并所有结果

c# - 如何调试 C# 命令行程序