I installed phpMyAdmin on my site and it works. But when I mistype a query it does not show the mysql error message only the error code.
1064 -
I expect the following:
1064 - You have and error in your blah blah...
Without an error message it's difficult to know what's wrong.
In my php scripts I'm able to get the error message via mysql_error(). But myAdmin shows nothing.
I googled a lot but I didn't find anything useful.
How can I make it show the error messages?
Any ideas?
Judging by the fact that you get "#1064 -" as output, I can find only two places in the phpMyAdmin 3.3.9.2 source where the error could be occurring. The first is in the call to
mysql_error
ormysqli_error
, depending on which backend your installation is using. I see you said thatmysql_error
works fine; if the phpMyAdmin information page you get when first logging in indicates that mysqli is being used, you might want to check that too.But if mysql_error works, it seems more likely that the problem is in phpMyAdmin's character set conversion function
PMA_DBI_convert_message
in libraries/database_interface.lib.php. You can confirm this easily enough by insertingreturn $message;
at the very top of that function, bypassing everything else in there. If that makes it (more or less) work, you'd probably want to determine what$server_language
and$GLOBALS['charset']
are getting set to; see if the conversion is usingiconv
,recode_string
,libiconv
, ormb_convert_encoding
; and then try to work out why whichever of those is failing to convert the error message properly.Did you see :
In the docs ?
Probably, Server cannot correctly access LOCALE settings. It happens on chroot-ed / chjail-ed environments or poor configuration.
Based on @Anomie answer, I made a workaround.
For phpmyadmin 4.4.3 change the Fallback setting in file
libraries/DatabaseInterface.class.php
For some older versions, edit file
libraries/database_interface.lib.php
and setarray $encodings => 'english'
value toUTF-8
(~line 273),