2010-04-27 6 views
5

Mam stół z kolumną varchar. Jego sortowanie jest ustawione na utf8_bin. Moje oprogramowanie korzystające z tej tabeli i kolumny działa doskonale. Ale kiedy patrzę na zawartość phpmyadmin, widzę tylko niektóre wartości szesnastkowe lub [Blob xB]. Czy mogę zrobić phpmyadmin pokazać zawartość poprawnie?phpmyadmin pokazuje liczby lub blob dla kolumn wywołujących utf8_bin mysql?

Poza tym, po ustawieniu sortowania na utf8_general_ci lub utf8_unicode_ci, phpmyadmin wyświetla treść poprawnie.

Thx Marc

[edytuj] Hah, dowiedziałem się, że istnieje związek mały "+ Opcje" powyżej każdej tabeli w phpMyAdmin. Otwiera kilka opcji, w tym "Pokaż zawartość BLOB" - co sprawia, że ​​[blob] do czytelnego tekstu po włączeniu i "Pokaż zawartość binarną jako HEX", który pokazuje kody szesnastkowe jako tekst po wyłączeniu.

Nie mam pojęcia, dlaczego istnieją dwie opcje i dlaczego czasami występują wartości [Blob] i czasami wartości szesnastkowe.

Cóż. Teraz wciąż zastanawiam się: ustawienie tych opcji gubi się, gdy idę do innego stołu. Muszę je ustawiać za każdym razem, gdy tam będę. Czy istnieje sposób na zapisanie tych opcji? [/ edit]

+1

To wydaje się być to samo pytanie/odpowiedź, jak http://stackoverflow.com/questions/2188264/viewing-content-of-blob-in-phpmyadmin? –

Odpowiedz

2

W rzeczywistości można. Ale musisz mieć dostęp do plików php phpMyAdmin. Jeśli tak, przejdź do /libraries/config.default.php

Następnie poszukaj $ cfg ['DisplayBinaryAsHex'] = true; i zmień wartość na "false". (Powinno to być około 888 linii)

Cheers,

Robin

+0

OK, ignorując "NIE !! NIE EDYTUJ !!" skomentuj dużą czcionkę acsii na początku tego pliku, to faktycznie działa i nie wydaje się zepsuć rzeczy :) Szukałem kolejnej otpion w tym pliku, aby ustawić "Pokaż zawartość BLOBa" również na true, ale nie mogę go znaleźć. Czy wiesz również, jak to włączyć? Dzięki. – marc40000

7
  • NOT EDIT ten plik EDIT config.inc.php ZAMIAST !!!

Tak więc, aby zrobić to zgodnie z właściwą dokumentacją autora PMA, edytuj config.inc.php. Dodaj linię: $ cfg ['DisplayBinaryAsHex'] = false;

do pliku config.inc.php.

;-)

+0

Masz na myśli 'config.default.php'? – Pacerier

2

poniższe linie do config.inc.php:

$_REQUEST['display_blob'] = true; 

mieć plamy zawsze rozszerzony w tabeli wyników, a

$cfg['ProtectBinary'] = false; 

aby móc edytować im.

Możesz również rzucić okiem na phpMyAdmin wiki.

UPDATE

To wystarczyło w 3.2.4. W 3.2.5, aby zobaczyć tekst, a nie hex podczas edycji wiersz trzeba także zrobić jak sugeruje Robin, dodaj następujący wpis do config:

$cfg['DisplayBinaryAsHex'] = false; 
+0

Ustawianie zmiennej $ _REQUEST, ale otrzymałem blob domyślnie dla mnie. Dzięki! – jwal

+0

Masz na myśli 'config.default.php'? – Pacerier

4

Myślę, że najlepszym rozwiązaniem jest, aby zmienić tę linię:

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

do tego:

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

Jeśli masz rozszerzenia mysqli dostępne, użyj go. Jest bezpieczniejszy, nieco bardziej zoptymalizowany i lepiej radzi sobie z typem BLOBa utf-8. Twoje wpisy [BLOB] powinny zacząć wyświetlać się jako wartości bez konieczności dodawania innych specjalnych opcji konfiguracyjnych.

+1

Mogę potwierdzić, że to robi różnicę. Po wypróbowaniu kilku innych zmian, przejście do mysqli kolumn utf8_bin zaczęło być ponownie wyświetlane jako zwykły tekst. – Costa

+1

To właśnie mi pomogło. –

1

Sugestia cwd rozwiązuje również inny problem.

I zostały kłopoty z wyświetlania „&” jako „&” w phpMyAdmin - przełączenie na MySQLi sprawia, że ​​problem znika (tak jest wyświetlany jako „&” „&”).