Подтвердить что ты не робот

Просмотр содержимого блоба в phpMyAdmin

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

4b9b3361

Ответ 1

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

$cfg['ShowBlob']              = TRUE;

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

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

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

+ Параметры

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

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

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

Вид печати (с полными текстами)

который находится в нижней части страницы.

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

$_GET['display_blob'] = true;

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

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

Ваш конкретный вопрос о кнопке "Выбрать файл" прост. Большинство использования blobs предназначены для хранения цифровых файлов в базе данных. Эта кнопка позволяет загружать новый файл в базу данных. Если вы выберете файл и нажмите "пойти", он попытается заполнить содержимое этого файла в столбце blob для вас.

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

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

Ответ 2

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

Ответ 3

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

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

Вам нужно выполнить CAST результат как CHAR, потому что QUOTE (двоичный) все еще двоичный. Это может вызвать некоторый хаос (как это делает @ftrotter), потому что QUOTE переводит только управляющие символы, а не над-ASCII-символы.

введите описание изображения здесь

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

Ответ 4

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

Вы можете щелкнуть правой кнопкой мыши по phpMyAdmin и сохранить ссылку в качестве расширения файла txt, чтобы просмотреть тип текстового файла blob

Ответ 5

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

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

:

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

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

Ответ 6

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

Ответ 7

Диалоговое окно "Выбрать файл" позволяет вам выбрать файл на вашей рабочей станции и загрузить его внутри столбца blob для этой строки.

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

Ответ 8

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

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