phpmyadmin 为 mysql utf8_bin 排序列显示数字或 blob?
Posted
技术标签:
【中文标题】phpmyadmin 为 mysql utf8_bin 排序列显示数字或 blob?【英文标题】:phpmyadmin shows numbers or blob for mysql's utf8_bin callation columns? 【发布时间】:2011-02-12 20:37:28 【问题描述】:我有一个带有 varchar 列的表。其排序规则设置为 utf8_bin。我使用此表和列的软件运行良好。但是当我查看 phpmyadmin 中的内容时,我只看到一些十六进制值或 [Blob xB]。我可以让 phpmyadmin 正确显示内容吗?
此外,当我将排序规则设置为 utf8_general_ci 或 utf8_unicode_ci 时,phpmyadmin 会正确显示内容。
谢谢 马克
[edit]哈,我发现,phpmyadmin 中的每个表格上方都有一个小的“+Options”链接。它打开了几个选项,包括“显示 BLOB 内容”——启用时使 [blob] 变为可读文本,以及禁用时将十六进制代码显示为文本的“显示二进制内容为 HEX”。
不知道为什么有两个选项,为什么有时会有 [Blob] 有时是十六进制值。
嗯。现在我仍然想知道:当我去另一张桌子时,设置这些选项会丢失。我每次去那里都必须设置它们。有没有办法保存这些选项? [/编辑]
【问题讨论】:
这似乎和***.com/questions/2188264/…是同一个问答空间? 【参考方案1】:事实上,你可以。但是您需要有权访问 phpMyAdmin php 文件。如果有,请转到 /libraries/config.default.php
然后寻找 $cfg['DisplayBinaryAsHex'] = true;并将值更改为“假”。 (应该在第 888 行左右)
干杯,
罗宾
【讨论】:
好的,忽略“不!!不要编辑!!”在该文件开头的 acsii art big font 中进行评论,它实际上可以工作并且似乎并没有搞砸事情:) 我正在该文件中搜索另一个选项,以使“显示 BLOB 内容”也默认为 true,但我找不到它。你也知道如何启用它吗?谢谢。【参考方案2】: 不要编辑这个文件,而是编辑 config.inc.php !!!因此,要根据 PMA 作者的正确文档执行此操作,请编辑 config.inc.php。 添加行: $cfg['DisplayBinaryAsHex'] = false;
到您的 config.inc.php 文件。
;-)
【讨论】:
你的意思是config.default.php
?【参考方案3】:
将以下行附加到您的config.inc.php
:
$_REQUEST['display_blob'] = true;
让 BLOB 始终在结果表中展开,并且
$cfg['ProtectBinary'] = false;
能够编辑它们。
您可能还想看看phpMyAdmin wiki。
更新
在 3.2.4 中就足够了。在 3.2.5 中,为了在编辑行时查看文本而不是十六进制,您还需要按照 Robin 的建议进行操作,将以下条目添加到配置中:
$cfg['DisplayBinaryAsHex'] = false;
【讨论】:
设置 $_REQUEST 变量会默认为我显示 blob。谢谢! 你的意思是config.default.php
?【参考方案4】:
我认为最好的解决方案是改变这一行:
$cfg['Servers'][$i]['extension'] = 'mysql';到这里:
$cfg['Servers'][$i]['extension'] = 'mysqli';如果您有可用的 mysqli 扩展,请使用它。它更安全,更优化,默认情况下它更好地处理 utf-8 的 BLOB 类型。您的 [BLOB] 条目应该开始显示为它们的值,而无需添加任何其他特殊配置选项。
【讨论】:
我可以确认这会有所作为。在尝试了一系列其他更改后,切换到 mysqli utf8_bin 列再次开始显示为常规文本。【参考方案5】:cwd 的建议还解决了另一个问题。
我在 phpMyAdmin 中将“&
”显示为“&
”时遇到了问题 - 切换到 MySQLi 可以解决该问题(因此“&
”显示为“&
”)。
【讨论】:
以上是关于phpmyadmin 为 mysql utf8_bin 排序列显示数字或 blob?的主要内容,如果未能解决你的问题,请参考以下文章
在 phpmyadmin 中导出带有批量数据的 mysql 表
phpmyadmin 为 mysql utf8_bin 排序列显示数字或 blob?