PHPMyadmin不显示mysql错误消息

时间:2011-01-19 13:46:13

标签: php mysql phpmyadmin syntax-error

我在我的网站上安装了phpMyAdmin,但它确实有效。但是当我输入错误的查询时,它不会显示mysql错误消息,只显示错误代码。

1064 -

我期待以下内容:

1064 - 你的等等和错误......

没有错误信息,很难知道出了什么问题。

在我的php脚本中,我能够通过mysql_error()获取错误消息。但myAdmin没有显示任何内容。

我google了很多,但我找不到任何有用的东西。

如何让它显示错误消息?

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

根据您输入“#1064 - ”的事实判断,我只能在phpMyAdmin 3.3.9.2源中找到可能发生错误的两个位置。第一个是调用mysql_errormysqli_error,具体取决于您的安装使用的后端。我看到你说mysql_error工作正常;如果您在首次登录时获得的phpMyAdmin信息页面指示正在使用mysqli,您可能也想检查它。

但是如果mysql_error有效,那么问题似乎更可能出现在libraries / database_interface.lib.php中的phpMyAdmin的字符集转换函数PMA_DBI_convert_message中。您可以通过在该函数的最顶部插入return $message;,绕过其中的所有其他内容,轻松确认这一点。如果这样做(或多或少)有效,您可能想确定$server_language$GLOBALS['charset']设置的内容;查看转化是使用iconvrecode_stringlibiconv还是mb_convert_encoding;然后尝试找出为什么无法正确转换错误消息的原因。

答案 1 :(得分:1)

可能是Server无法正确访问LOCALE设置。它发生在chroot-ed / chjail-ed环境或配置不佳。

根据@Anomie的回答,我做了一个解决方法。

对于phpmyadmin 4.4.3 更改文件libraries/DatabaseInterface.class.php中的后备设置

 /* Fallback to CP1252 if we can not detect */
        $encoding = 'UTF-8';

对于某些旧版本,请修改文件libraries/database_interface.lib.php并进行设置 array $encodings => 'english'值为UTF-8(〜第273行),

'english'       => 'UTF-8', //'latin1',

答案 2 :(得分:0)

你有没有看到:

  

$cfg['Error_Handler']['display']   布尔

     

是否显示PHP的错误。

     

$cfg['Error_Handler']['gather']   布尔

     

是否从PHP收集错误。

In the docs

答案 3 :(得分:0)

有同样的问题,可以通过在我的浏览器中为phpmyadmin禁用FireFox附加uBlock(版本:Origin 1.25.2)来解决。