SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.06.2009 11:05:52

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Странности с phpmyadmin

Знаю, что это не совсем mysql (кажется), но может подскажете хоть куда копать. В общем суть проблемы скажет вот такой запрос, выполненный через phpmyadmin:

Код:

SELECT
        codeorgch,
        CONCAT(codeorgch,' + ',n_org)
FROM tbl
LIMIT 5

Результат будет примерно такой:

Код:

codeorgch     CONCAT(codeorgch,' + ',n_org)
ФЦ     �� + 96
ФЦ     �� + 96
ФЦ     �� + 96
ФЦ     �� + 96

Видно, что во втором столбце полетела кодировка, вот только непонятно почему. Если в функцию concat третьим аргументом поставить например число (или вовсе убрать его) - то все нормально:

Код:

codeorgch     CONCAT(codeorgch,' + ',11)
ФЦ     ФЦ + 11
ФЦ     ФЦ + 11
ФЦ     ФЦ + 11
ФЦ     ФЦ + 11

Также хорошо видно, что без CONCAT() значения столбцов показываются корректно, причем любые.
В других клиентах проблем нет, например когда я такой же скрипт выполню и покажу парсером - то всё в порядке. Куда копнуть бы, а? smile

Отредактированно Shopen (08.06.2009 13:09:32)

Неактивен

 

#2 08.06.2009 19:30:10

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Странности с phpmyadmin

Прикольно. А если явно заставить вывести в правильной кодировке (CONVERT ..)?

Неактивен

 

#3 08.06.2009 21:46:19

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Странности с phpmyadmin

Ага - помогает, вот так показывает праильно -

Код:

SELECT
        codeorgch,
        CONVERT(CONCAT(codeorgch,' + ',n_org) USING cp1251)
FROM tbl
LIMIT 5

но это же ненормальная ситуация, имхо. Еще замечено, что если БД копирую к себе на localhost  к денверу, то его коробочный pma всё показывает как надо.  Т.е. где то в pma что-то "чуть-чуть" недонастроено в плане кодировок, а что - непонятно

Неактивен

 

#4 17.06.2009 12:20:05

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Странности с phpmyadmin

В общем для потомков smile

Я так и не понял почему так происходит, точнее почему такой странный результат в PMA, хотя в других клиентах этого нет. Но лечится просто - нужно либо использовать CONVERT как указано выше, либо, что по видимому правильнее, использовать CAST для не текстовых столбцов (n_org - int):

Код:

SELECT
        codeorgch,
        CONCAT(codeorgch,' + ',CAST(n_org AS CHAR))
FROM tbl
LIMIT 5

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson