在phpMyAdmin中查看Blob的内容

在phpMyAdmin中查看Blob的内容,phpmyadmin,blob,Phpmyadmin,Blob,对于Noob的问题很抱歉,但是圆圈按钮是什么意思,我如何查看blob的内容? (来源:)早期版本的phpmyadmin有一个名为 $cfg['ShowBlob'] = TRUE; 这将允许您在浏览器中查看blob的内容。您应该注意,如果将二进制文件存储在blob中,这将导致混乱,因为您会在浏览器窗口中看到无尽的gobblygok。有一些人(像我一样)决定他们的应用程序需要使用BLOB类型来存储文本(当时似乎是一个不错的决定,我记得我也考虑过这个决定)。但是,phpm

对于Noob的问题很抱歉,但是圆圈按钮是什么意思,我如何查看blob的内容?

(来源:)

早期版本的phpmyadmin有一个名为

$cfg['ShowBlob']              = TRUE;
这将允许您在浏览器中查看blob的内容。您应该注意,如果将二进制文件存储在blob中,这将导致混乱,因为您会在浏览器窗口中看到无尽的gobblygok。有一些人(像我一样)决定他们的应用程序需要使用BLOB类型来存储文本(当时似乎是一个不错的决定,我记得我也考虑过这个决定)。但是,phpmyadmin决定通过取消此配置设置来阻止此操作。可以理解,因为这样做可能会导致相当多的支持请求。显然,他们的想法是让人们在文本字段类型上移动

令人高兴的是,显示BLOB内容的操作已被移动到用户界面中,而不是配置中

浏览时查看blob内容的最简单方法是单击链接:

+选项

幸运的是,您的屏幕截图已经在顶部图像的顶部显示了+选项

它将显示一个允许您显示blob(和二进制文件)的表单。单击该按钮,它会将其添加到您选择的会话中,确保您从此可以看到内容

您也可以使用“打印视图”获得相同的结果:

打印视图(带全文)

它位于页面底部

不幸的是,如果您总是想显示blob,这两种技术都没有帮助,因为它似乎经常重置。可以通过添加行来解决此问题

$_GET['display_blob'] = true;
在sql.php文件的开头。我想可能有更好的办法,我希望其他人能提出

(注意:正如Rodrigo指出的,您可以通过在URL上添加
&display\u bob=true
手动实现此效果)

关于“选择文件”按钮的具体问题很简单。BLOB的大多数用途是在数据库中存储数字文件。此按钮允许您将新文件上载到数据库中。如果您选择一个文件并单击“go”,它将尝试将该文件的内容填充到blob列中

需要注意的是,仅仅显示blob的内容可能不是其他用户想要的。在使用此选项显示blob之前,当我查看“blob摘要”时,我看到blob的大小最大为55字节。您的示例具有更大的值,因为它看起来像是存储非常小的文本文件,我假设这意味着文本的段落。如果大小大于10千字节,则可能是一个二进制文件,只显示gooblegok


如果您想智能地下载二进制文件(而不是将其显示为文本),我认为您需要研究phpmyadmin称之为blobstream的内容。

我认为最好的解决方案是更改这一行:

$cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['extension']='mysql'; 为此:

$cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['extension']='mysqli';
如果您有可用的mysqli扩展,请使用它。它更安全,更优化,并且默认情况下更好地处理BLOB类型的utf-8。您的[BLOB]条目应该开始显示为它们的值,而无需添加任何其他特殊配置选项。

在URL末尾放置
&display\u BLOB=true

新版本的PHPMyAdmin似乎需要稍微不同的解决方案

$cfg['ProtectBinary'] = FALSE;
将其放在文件
/etc/phpmyadmin/config.inc.php

或者用这一行

echo "\$cfg['ProtectBinary'] = FALSE;" | sudo tee -a /etc/phpmyadmin/config.inc.php
这在PHPMyAdmin版本3.4.10.1deb1上对我很有效,“选择文件”对话框允许您在工作站上选择一个文件,并将其上载到此行的blob列中


如果您的BLOB包含JPEG或PNG图像,您可以在浏览时查看它们的缩略图,单击缩略图时会显示完整图像。请参阅。

我在config.inc.php中添加了额外的内容,这对我帮助很大

# Show BLOB data on table browse pages.  Hack to hardcode all requests.
$_REQUEST['display_blob'] = true;

对于新访问者,查看BLOB列的另一种方法是函数。为了方便起见,可以从中创建视图。(视图的行为类似于表,但实际上是一种保存的查询):

您必须将结果强制转换为CHAR,因为QUOTE(binary)仍然是二进制的。这可能会造成一些混乱(正如@ftrotter所说),因为引号只翻译控制字符,而不是超ASCII字符

减少混乱的使用。


您可以右键单击phpMyAdmin并将链接另存为txt文件扩展名以查看blob文本文件类型

phpMyAdmin中已经有一个处理程序来显示blob数据 为此,只需在url末尾添加“&display\u blob=true”。 更改url,如下所示:

*****phpmyadmin/sql.php?db=database\u name&table=table\u name


*****phpmyadmin/sql.php?db=database\u name&table=table\u name&display\u blob=true

您可以使用打印预览模式查看它吗?这似乎是与相同的问题/答案空间?虽然我相信您的答案很有用,但请小心使用样板副本和粘贴答案,这些答案往往会被标记(与此一样)作为重复和可能的垃圾邮件。为了记录这两个答案最初是由我写的。谢谢。我知道它们都是你写的,但是它们被标记为相同的,这意味着它们有被社区通过10k rep user mod tools标记为垃圾邮件的风险。只要注意让它们符合问题,也许可以重新调整一下措辞。这是为了你自己,而不是为了别人。谢谢,没用$cfg['Servers'][$i]['extension']='mysqli';在这种情况下,哪些是“早期版本”,哪些是2010年4月的当前版本?对于带有MySQL客户端5.0.51a的phpMyAdmin 2.11.8.1deb5+lenny8,我在任何地方都找不到“+选项”链接:-(。我认为只有非常早期的版本……一些与php v4 For insta一起使用的版本
CREATE VIEW log_text AS SELECT BlobID, FileName, CAST(QUOTE(Content) AS CHAR) FROM log;