1267 - Illegal mix of collations

маг 2.3.
При пользовании как расширенным, так и быстрым поиском (в русской раскладке) выдает:
1267 - Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'

select count(distinct p.products_id) as total from products p left join manufacturers m using(manufacturers_id) left join specials s on p.products_id = s.products_id, products_description pd, categories c, products_to_categories p2c where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '2' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and ((pd.products_name like '%����������������%' or p.products_model like '%����������������%' or m.manufacturers_name like '%����������������%' or pd.products_description like '%����������������%') )

[TEP STOP]



Кто нибудь сталкивался с таким? И как решалось?

Все остальное правильно и без ошибок отображается.

*

Spido

  • *
  • 1634

В базе везде должно быть utf8_general_ci, а у Вас проскакивает cp1251_general_ci.
Поэтому и проблемы.

Если вам помогли, то не стесняйтесь отблагодарить донатом:

Странно, у меня вся БД пишется в utf8, а смотрю в дамп, там во всех разделах CREATE TABLE стоит DEFAULT CHARSET=cp1251...
Заменил cp1251 на utf8, перезалил базу - эта ошибка пропала, однако теперь при текстовом поиске ничего не находит... Т.е., если я ввожу стоимость или дату добавления мне - выводит список, а если пытаться вводить какие-либо слова (точно знаю что в описании товара есть) - результат - нулевой...
При всем при этом если перейти на английский, то нормально работает и текстовый поиск...

*

Spido

  • *
  • 1634

Нужно всю базу конвертировать в utf8_general_ci.

Если вам помогли, то не стесняйтесь отблагодарить донатом:

Так во всей колонке Collation, при простмотре структуры выставил utf8_general_ci - не помогает...
Может попытаться все перевести на ср1251?

*

Love

Так во всей колонке Collation, при простмотре структуры выставил utf8_general_ci - не помогает...
Может попытаться все перевести на ср1251?
Одно дело выставить utf8, а другое дело сама база в чем.
У вас там похоже каша кодировок в базе.

Сама база в utf8, иначе дамп-бы криво заливался и на страницах данные из базы прочитать невозможно было-б...
А перевести я могу через программку ей файлик открываешь, перекодируешь и сохраняешь... Таким образом можно и дамп перекодировать... Вот только теперь вопрос в том что б движку указать что надо работать в cp1251...

*

Love

Если движок предназначен для работы с utf8, то свои эксперименты делайте сами.

В файлах
\includes\functions\database.php
\admin\includes\functions\database.php
прописана кодировка utf8.
Файлы локализации написаны тоже в utf8.
В БД данные при вводе заносятся так же в utf8.
Сама база с нуля, перед заливкой дампа ассоциирована с utf8.
Дамп залит как utf8.
Страницы магазина отображаются вполне адекватно (нечатаемых символов нет).

Все равно не пойму почему не ищет в БД русские символы, вроде все правильно...

*

Love

Значить где-то но не правильно. Ищите. Нам не видно что у вас там точно.