2

phpMyAdmin を使用してクエリを実行すると、返されるエラーにエラーの説明がありません。返されるエラーは次のとおりです。

#1064 -

phpMyAdmin にエラーの説明がありません

...予想されるものではなく:

#1064 - You have an error in your SQL syntax; check the manual...

私の PHP コードは、MySQL エラーの説明を正しく使用して返していますmysql_error()

Google と SO で解決策を探すのに 2 日間費やしましたが、見つかりませんでした。したがって、私自身とこの問題に対する答えを探している他の人の今後の参考のために、ここで答えます。より良い解決策がある場合は、回答を追加してください。

4

1 に答える 1

1

最終的に、関連する質問PHPMyadmin does not show mysql error messagesを見つけました。この回答で問題を解決する方法がわかりません。@anomie が次のように述べていることに注意しました。

PMA_DBI_convert_messagemysql_error が動作する場合は、libraries/database_interface.lib.phpにある phpMyAdmin の文字セット変換関数に問題がある可能性が高いと思われます

エンコードを設定するこのセクションを libraries/database_interface.lib.php で見つけました。

function PMA_DBI_convert_message($message)
{
    // latin always last!
    $encodings = array(
        'japanese'      => 'EUC-JP', //'ujis',
        'japanese-sjis' => 'Shift-JIS', //'sjis',
        'korean'        => 'EUC-KR', //'euckr',
        'russian'       => 'KOI8-R', //'koi8r',
        'ukrainian'     => 'KOI8-U', //'koi8u',
        'greek'         => 'ISO-8859-7', //'greek',
        'serbian'       => 'CP1250', //'cp1250',
        'estonian'      => 'ISO-8859-13', //'latin7',
        'slovak'        => 'ISO-8859-2', //'latin2',
        'czech'         => 'ISO-8859-2', //'latin2',
        'hungarian'     => 'ISO-8859-2', //'latin2',
        'polish'        => 'ISO-8859-2', //'latin2',
        'romanian'      => 'ISO-8859-2', //'latin2',
        'spanish'       => 'CP1252', //'latin1',
        'swedish'       => 'CP1252', //'latin1',
        'italian'       => 'CP1252', //'latin1',
        'norwegian-ny'  => 'CP1252', //'latin1',
        'norwegian'     => 'CP1252', //'latin1',
        'portuguese'    => 'CP1252', //'latin1',
        'danish'        => 'CP1252', //'latin1',
        'dutch'         => 'CP1252', //'latin1',
        'english'       => 'CP1252', //'latin1',
        'french'        => 'CP1252', //'latin1',
        'german'        => 'CP1252', //'latin1',
    );

'english' => 'UTF-8',エラーの完全な説明が正しく表示されるように、英語の行を変更しました。

他の関数でテキストが失われる可能性のあるエンコードの問題が他にあるかどうかはわかりませんが、少なくともこれで問題は解決します。

于 2013-02-28T12:30:52.080 に答える