![]() |
Вопрос по таблицам в mySQL и работе с ними в PHP
Уважаемые спецы. Вопрос по таблицам в mySQL и работе с ними в PHP. Точнее, наверное, по кодировкам в этих таблицах. Напишу вопрос внутри. Очень прошу помощи. Чтобы раз и навсегда с этим разобраться.
Есть у меня какие-то таблицы в проекте. По умолчанию они создавались в какой-то latin кодировке. Я конвертировал одну из них (edit_maket) в UTF8_unicode_ci (или это мне показалось, что я сконвертировал). [img]http://img42.**************/img42/6624/picture1zzv.jpg[/img] phpMyAdmin говорит (или я его неправильно понимаю), что все поля в этой таблице - utf8_unicode_ci. То есть максимально правильно должны пониматься русские буквы. [img]http://img25.**************/img25/7748/picture2dn.jpg[/img] Но когда я пишу запрос поиска с использованием SELECT...LIKE то он находит только буквы и слова в том регистре, как я написал. То есть только маленькие буквы или только большие. [img]http://img35.**************/img35/5303/picture4ar.jpg[/img] то есть, чтобы он находил записи и с большой буквой "В", и с маленькой "в" мне нужно писать OR, что глупо и не решает вопроса. [img]http://img36.**************/img36/7311/picture3ga.jpg[/img] Подскажите, пожалуйста, что делать? При коннекте к базе я выполняю запрос "set CHARACTER SET UTF8_unicode_ci" но ничего не меняется. |
а вам обязательно UTF8?
у меня например сравнение cp1251_general_ci при каждом подключение ещё даю запрос на всякий случай SET NAMES 'cp1251' При создание таблиц так же указываю ENGINE=MyISAM CHARACTER SET=cp1251; Ну и в самих конфигах базы... либо my.cnf либо my.ini там строчка есть default-character-set=cp1251 точно помню, если что-то забыть, то могут иероглифы сохраняться... попробуйте сделать то-же самое только для utf8 |
ну, не знаю, у меня SELECT*from bla WHERE blabla LIKE %myData%, ищет во всех регистрах ! чтобы искал регистро-зависимо, нада указывать BINARY, то есть
SELECT*from bla WHERE blabla LIKE BINARY %myData% что то у вас явно не так и не то …*потому что даже в доках, чтобы добиться регистро-зависимоего поиска, добавляют binary …*при обычном же поиске выдаются результаты не регистро-зависимого поиска …* Добавлено через 2 минуты а зачем в скобках то указывать условие ? вы вобще доки читаете ? SELECT*from edit_maket WHERE mKomu LIKE %b% |
membrilius: да, я убил базу и создал её вручную и красиво. Просто красиво сконвертировать вчера так и не получилось :( Теперь всё, конечно, работает, когда и база создана с правильным characterset, и таблицы создавались с utf8_general_ci по умолчанию, и каждое текстовое/чаровое поле в них тоже прописывалось как collate utf8_general_ci.
gldrawworld: оно работает, когда везде правильная кодировка. скобочки в третьей картинке стоят, потому что на самом деле я скриншотил её после четвёртой. А в четвёртой был OR в условии и потом я просто не всё поудалял. Да не важно это. Ок, спасибо ребята, за сопереживание. |
| Часовой пояс GMT +4, время: 01:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.