phpmyadmin shows numbers or blob for mysql's utf8_bin callation columns?

雨燕双飞 提交于 2019-12-18 13:37:34

问题


I have a table with a varchar column. Its collation is set to utf8_bin. My software using this table and column works perfectly. But when I look at the content in phpmyadmin, I only see some hex values or [Blob xB]. Can I make phpmyadmin show the content correctly?

Besides, when I set the collation to utf8_general_ci or utf8_unicode_ci, the phpmyadmin shows the content correctly.

Thx Marc

[edit]Hah, I found out, there is a small "+Options" link above every table in phpmyadmin. It opens several options including "Show BLOB contents" - which makes the [blob] to readable text when enabled and "Show binary contents as HEX" which shows the hex codes as text when disabled.

No idea why there are two options though and why sometimes there is a [Blob] and sometimes hex values.

Well. Now I'm still wondering: Setting these options get lost when I go to another table. I have to set them every time I go there. Is there a way to save those options? [/edit]


回答1:


  • DO NOT EDIT THIS FILE, EDIT config.inc.php INSTEAD !!!

So, to do this in line with PMA author's correct documentation, edit config.inc.php. Add the line: $cfg['DisplayBinaryAsHex'] = false;

to your config.inc.php file.

;-)




回答2:


I think the best solution is to change this line:

$cfg['Servers'][$i]['extension'] = 'mysql';

to this:

$cfg['Servers'][$i]['extension'] = 'mysqli';

If you have the mysqli extension available, use it. It is more secure, a bit more optimized, and it handles the BLOB type of utf-8 better by default. Your [BLOB] entries should start showing up as their values without having to add in any other special configuration options.




回答3:


As a matter of fact, you can. But you would need to have access to the phpMyAdmin php files. If you have, go to /libraries/config.default.php

Then look for $cfg['DisplayBinaryAsHex'] = true; and change the value to "false". (It should be around line 888)

Cheers,

Robin




回答4:


Append the following lines to your config.inc.php:

$_REQUEST['display_blob'] = true;

to have the BLOBs always expanded in the results table, and

$cfg['ProtectBinary'] = false;

to be able to edit them.

You may also want to have a look at the phpMyAdmin wiki.

UPDATE

That was enough in 3.2.4. In 3.2.5 in order to see text and not hex when editing a row you also need to do as Robin suggested, add the following entry to the config:

$cfg['DisplayBinaryAsHex'] = false;



回答5:


cwd's suggestion also fixes another problem.

I had been having trouble with "&" being displayed as "&" in phpMyAdmin - switching to MySQLi makes that problem go away (so "&" is displayed as "&").



来源:https://stackoverflow.com/questions/2721302/phpmyadmin-shows-numbers-or-blob-for-mysqls-utf8-bin-callation-columns

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!