2

Mysqlエラーは、開発中に発生する最も一般的なエラーの1つであり、それらを出力するための快適で有益な方法を探しています。

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

短いクエリですが、テキストの直前に余分なカンマがあることがすぐにわかります。はるかに大きなクエリでこれを行うと、読みやすさが劇的に向上する可能性があります。このテーマに関する多数の検索で何も得られなかったことに驚いています。

一文で質問:デバッグ目的でかなりのmysqlエラーを表示するそのようなPHPクラスを使用または知っていますか?

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はそれぞれ数値と文字列を表し、表示時にメッセージ値に置き換えられます。

サンプルエラーメッセージは 、行%dの'%s'の近くの%sになります。

したがって、errmsg.txtのすべてのエラーメッセージに何かを追加できる場合は、php mysql_error関数によって返される文字列で一致する文字列を確認してから、 太字または斜体にすることができます。

以前に書いた特定のクラスはないと思います。

ゼロから始めて、自分のサーバーにたどり着く必要があります。

于 2010-08-19T07:32:34.827 に答える
1

トピックから外れているかもしれませんが、開発中の最も一般的なエラーはSQLエラーではないと思います。一般的にエラーを表示するので、xDebugをインストールし、エラーメッセージの「微調整」を処理します。

于 2010-08-15T23:18:06.763 に答える
0

Webサイトからhttp://krumo.sourceforge.net/を試してください。

簡単に言うと、Krumoはprint_r()とvar_dump()の代わりになります。定義上、Krumoはデバッグツール(最初はPHP4 / PHP5用、現在はPHP5のみ)であり、PHP変数に関する構造化された情報を表示します。

于 2010-08-19T09:05:37.853 に答える