phpmyadmin показывает числа или большие двоичные объекты для столбцов вызова mysql utf8_bin?

У меня есть таблица со столбцом varchar. Его сопоставление установлено на utf8_bin. Мое программное обеспечение, использующее эту таблицу и столбец, работает отлично. Но когда я смотрю содержимое в phpmyadmin, я вижу только некоторые шестнадцатеричные значения или [Blob xB]. Могу ли я заставить phpmyadmin правильно отображать содержимое?

Кроме того, когда я устанавливаю параметры сортировки на utf8_general_ci или utf8_unicode_ci, phpmyadmin правильно отображает содержимое.

Спасибо Марк

[править] Ха, я узнал, что над каждой таблицей в phpmyadmin есть небольшая ссылка «+ Параметры». Он открывает несколько параметров, в том числе «Показать содержимое BLOB», который превращает [BLOB] в читаемый текст, когда он включен, и «Показать двоичное содержимое как HEX», который отображает шестнадцатеричные коды в виде текста, когда он отключен.

Не знаю, почему есть два варианта и почему иногда есть [Blob], а иногда и шестнадцатеричные значения.

Хорошо. Теперь мне все еще интересно: настройки этих параметров сбиваются, когда я перехожу к другому столу. Я должен установить их каждый раз, когда я иду туда. Есть ли способ сохранить эти параметры? [/редактировать]


person marc40000    schedule 27.04.2010    source источник
comment
Кажется, это то же пространство вопросов/ответов, что и stackoverflow.com/questions/2188264/?   -  person John Fiala    schedule 10.03.2011


Ответы (5)


  • НЕ РЕДАКТИРОВАТЬ ЭТОТ ФАЙЛ, ВМЕСТО РЕДАКТИРОВАТЬ config.inc.php !!!

Итак, чтобы сделать это в соответствии с правильной документацией автора PMA, отредактируйте config.inc.php. Добавьте строку: $cfg['DisplayBinaryAsHex'] = false;

в ваш файл config.inc.php.

;-)

person sciron    schedule 07.12.2010
comment
Вы имеете в виду config.default.php? - person Pacerier; 09.12.2014

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

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

к этому:

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

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

person cwd    schedule 23.06.2011
comment
Я могу подтвердить, что это имеет значение. Попробовав кучу других изменений, переключившись на mysqli, столбцы utf8_bin снова стали отображаться как обычный текст. - person Costa; 15.08.2013

На самом деле, вы можете. Но вам потребуется доступ к php-файлам phpMyAdmin. Если у вас есть, перейдите в /libraries/config.default.php

Затем найдите $cfg['DisplayBinaryAsHex'] = true; и измените значение на «false». (Это должно быть около строки 888)

Ваше здоровье,

Робин

person Robin    schedule 08.05.2010
comment
Хорошо, игнорируя НЕТ!! НЕ РЕДАКТИРОВАТЬ!! комментарий большим шрифтом acsii art в начале этого файла, он действительно работает и, похоже, ничего не испортит :) Я искал другой вариант в этом файле, чтобы сделать содержимое Show BLOB по умолчанию также равным true, но я не могу найти. Вы также знаете, как включить это? Спасибо. - person marc40000; 23.06.2010

Добавьте следующие строки к вашему config.inc.php:

$_REQUEST['display_blob'] = true;

чтобы BLOB всегда расширялись в таблице результатов, и

$cfg['ProtectBinary'] = false;

чтобы иметь возможность редактировать их.

Вы также можете ознакомиться с вики-страницей phpMyAdmin.

ОБНОВИТЬ

Этого было достаточно в 3.2.4. В 3.2.5 для того, чтобы при редактировании строки видеть текст, а не hex тоже нужно сделать как предложил Робин, добавить в конфиг следующую запись:

$cfg['DisplayBinaryAsHex'] = false;
person Johnny Baloney    schedule 01.06.2011
comment
Установка переменной $_REQUEST привела к тому, что по умолчанию для меня появились большие двоичные объекты. Спасибо! - person jwal; 20.06.2011
comment
Вы имеете в виду config.default.php? - person Pacerier; 09.12.2014

Предложение cwd также устраняет другую проблему.

У меня были проблемы с отображением «&» как «&» в phpMyAdmin — переключение на MySQLi устраняет эту проблему (поэтому «&» отображается как «&»).

person trapper_hag    schedule 08.10.2012