Viewing Content Of Blob In phpMyAdmin

2019-01-15 11:47发布

Sorry for the Noob Question, but what does the circled button mean, and how can I view the content of a blob? alt text http://www.rigel222.com/images/blobcontent.jpg

8条回答
放我归山
2楼-- · 2019-01-15 12:19

earlier versions of phpmyadmin had a setting called

$cfg['ShowBlob']              = TRUE;

That would allow you to view the contents of blobs in the browser. You should note that this would cause chaos if you were storing binary files in blobs, since you would see endless gobblygok in the browser window. There are some people (like me) who decided that their application needed to use BLOB types to store text (seemed like a good decision at the time, and as I recall there was some thinking on my part that went into the decision). However phpmyadmin decided to discourage this by deprecating this config setting. Understandable since doing this might cause quite a support request. Apparently the thinking was to move people over the TEXT field types.

Happily displaying the contents of blobs has been moved into the user interface rather than the configuration.

The simplest way to see the contents of blobs when you are browsing is to click the link:

+ Options

Happily your screenshot already shows the + Options in the top part of the top image.

Which will display a form that will allow you to display blobs (and binaries). Click that and it will add it to your choice to the session, ensuring that you see the contents from then on.

You can also get the same result using print view:

Print view (with full texts)

Which lives at the bottom of the page.

Sadly both of these techniques are not helpful if you always want to display the blob, since it appears to reset frequently. You can fix this by adding the line

$_GET['display_blob'] = true;

At the beginning of the sql.php file. I think there might be a better way to do this, and I hope someone else might bring it up...

(note: as Rodrigo pointed out you can manually achieve this effect by appending &display_bob=true on the URL)

Your specific question about the "Choose File" button is simple. Most of the uses of blobs are for storing digital files in the database. This button allows you to upload a new file into the database. If you select a file and click "go" it will try to stuff the contents of that file into the blob column for you.

Just to note, simply displaying the contents of the blob is probably not what other users want. When I look at the "blob summary" before I use this option to display the blobs I see blob sizes of 55 bytes max. Your example has bigger values, because it looks like you are storing very small text files, which I assume means paragraphs of text. If the size is bigger then 10's of kilo-bytes it is probably a binary file that will just display gooblegok.

If you want to download binary files intelligently (rather than displaying them as text) I think you need to look into what phpmyadmin calls blobstreaming.

查看更多
孤傲高冷的网名
3楼-- · 2019-01-15 12:20

I've added additional this to me to config.inc.php that helped me out so much

# Show BLOB data on table browse pages.  Hack to hardcode all requests.
$_REQUEST['display_blob'] = true;
查看更多
做自己的国王
4楼-- · 2019-01-15 12:28

For new visitors, another way to view BLOB columns is the QUOTE() function. You can create a view out of it for convenience. (A view behaves like a table but it's really a kind of saved query):

CREATE VIEW log_text AS SELECT BlobID, FileName, CAST(QUOTE(Content) AS CHAR) FROM log;

You'll have to CAST the result as CHAR because QUOTE(binary) is still binary. This may cause some chaos (as @ftrotter puts it) because QUOTE only translates control characters, not supra-ASCII characters.

enter image description here

For less chaos use HEX().

查看更多
贪生不怕死
5楼-- · 2019-01-15 12:31

The "Choose file" dialog permits you to pick a file on your workstation and upload it inside the blob column for this row.

If your BLOB contains JPEG or PNG images, you can actually view their thumbnails when browsing, with the full image being displayed when you click on the thumbnail. See https://phpmyadmin.readthedocs.org/en/latest/transformations.html.

查看更多
可以哭但决不认输i
6楼-- · 2019-01-15 12:32

Put &display_blob=true on the end of your URL.

查看更多
淡お忘
7楼-- · 2019-01-15 12:36

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.

查看更多
登录 后发表回答