我最终发现了一个相关的问题PHPMyadmin does not show mysql error messages。我会说我不明白如何用这个答案解决问题。我确实注意到@anomie 指出:
如果 mysql_error 有效,那么问题似乎更可能出PMA_DBI_convert_message
在 library/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',
现在可以正确显示完整的错误描述。
我不确定是否还有其他编码问题可能导致其他功能丢失文本,但这至少解决了我的问题。