Просмотр содержимого Blob в phpMyAdmin - PullRequest
35 голосов
/ 03 февраля 2010

Извините за вопрос Noob, но что означает кнопка в кружке, и как я могу просмотреть содержимое BLOB-объекта? * *alt text 1004 (источник: rigel222.com )

Ответы [ 8 ]

33 голосов
/ 08 апреля 2010

более ранние версии phpmyadmin имели настройку под названием

$cfg['ShowBlob']              = TRUE;

Это позволит вам просматривать содержимое BLOB-объектов в браузере. Вы должны заметить, что это приведет к хаосу, если вы будете хранить двоичные файлы в BLOB-объектах, так как вы увидите бесконечный гобблгок в окне браузера. Есть некоторые люди (как я), которые решили, что их приложение должно использовать типы BLOB для хранения текста (в то время это казалось хорошим решением, и, насколько я помню, с моей стороны были некоторые соображения, которые приняли решение). Однако phpmyadmin решил отговорить это, отказавшись от этой настройки конфигурации. Понятно, так как выполнение этого может вызвать довольно запрос поддержки. Очевидно, мы думали переместить людей через поля типа TEXT.

К счастью, отображение содержимого BLOB-объектов было перенесено в пользовательский интерфейс, а не в конфигурацию.

Самый простой способ просмотреть содержимое BLOB-объектов при просмотре - щелкнуть ссылку:

+ Опции

К счастью, на вашем скриншоте уже показаны опции + в верхней части верхнего изображения.

Который будет отображать форму, которая позволит вам отображать капли (и двоичные файлы). Щелкните по нему, и он добавит его по вашему выбору в сеанс, гарантируя, что вы увидите содержимое с этого момента.

Вы также можете получить тот же результат, используя вид печати:

Просмотр печати (с полными текстами)

Который живет внизу страницы.

К сожалению, оба эти метода бесполезны, если вы всегда хотите отобразить BLOB-объект, поскольку он часто сбрасывается. Вы можете исправить это, добавив строку

$_GET['display_blob'] = true;

В начале файла sql.php. Я думаю, что мог бы быть лучший способ сделать это, и я надеюсь, что кто-то еще мог бы поднять это ...

(примечание: как отметил Родриго, вы можете вручную достичь этого эффекта, добавив &display_bob=true в URL)

Ваш конкретный вопрос о кнопке «Выбрать файл» прост. Большая часть использования блобов предназначена для хранения цифровых файлов в базе данных. Эта кнопка позволяет загрузить новый файл в базу данных. Если вы выберете файл и нажмете «go», он попытается вставить содержимое этого файла в столбец BLOB-объектов.

Просто чтобы заметить, простое отображение содержимого блоба, вероятно, не то, что хотят другие пользователи. Когда я просматриваю «сводку BLOB-объектов», прежде чем использовать эту опцию для отображения BLOB-объектов, я вижу размеры BLOB-объектов не более 55 байт. Ваш пример имеет большие значения, потому что похоже, что вы храните очень маленькие текстовые файлы, что, я предполагаю, означает абзацы текста. Если размер больше 10 килобайт, это, вероятно, двоичный файл, который будет отображать гуглгок.

Если вы хотите загружать двоичные файлы разумно (вместо того, чтобы отображать их в виде текста), я думаю, вам нужно разобраться, что phpmyadmin называет blobstreaming.

16 голосов
/ 03 ноября 2011

Поставьте &display_blob=true в конце вашего URL.

3 голосов
/ 30 мая 2016

Сохранить ссылку как текстовый файл

Вы можете щелкнуть правой кнопкой мыши на phpMyAdmin и сохранить ссылку как расширение файла TXT для просмотра типа текстового файла BLOB-объекта

3 голосов
/ 01 сентября 2015

Для новых посетителей еще один способ просмотра BLOB-столбцов - это функция QUOTE () . Вы можете создать вид из него для удобства. (Представление ведет себя как таблица, но это действительно своего рода сохраненный запрос):

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

Вам придется ЗАЧИСТИТЬ результат в виде CHAR, потому что QUOTE (двоичный файл) все еще является двоичным. Это может вызвать некоторый хаос (как говорит @ftrotter), потому что QUOTE переводит только управляющие символы, а не символы выше ASCII.

enter image description here

Для меньшего хаоса используйте HEX () .

2 голосов
/ 27 августа 2012

Новые версии 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

2 голосов
/ 24 июня 2011

Я думаю, что лучшее решение состоит в том, чтобы изменить эту строку:

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

к этому:

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

Если у вас есть расширение mysqli, используйте его. Он более безопасный, немного более оптимизированный и по умолчанию лучше обрабатывает тип BLOB типа utf-8. Ваши записи [BLOB] должны начать отображаться как их значения без добавления каких-либо других специальных параметров конфигурации.

1 голос
/ 23 августа 2013

Диалоговое окно «Выбрать файл» позволяет вам выбрать файл на рабочей станции и загрузить его в столбец BLOB-объектов для этой строки.

Если ваш BLOB-файл содержит изображения в формате JPEG или PNG, вы можете просмотреть их эскизыпри просмотре, полное изображение отображается при нажатии на миниатюру.Смотри https://phpmyadmin.readthedocs.org/en/latest/transformations.html.

0 голосов
/ 25 ноября 2014

Я добавил это мне в config.inc.php, который мне очень помог

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