Logo
Версия для печати

Ошибка БД SQL Illegal mix of collations (cp1251_bin,IMPLICIT)

  • Автор  SeRbGa

Всем привет!

Это первая тема в разделе SQLphpmyadmin, буду ее иногда дополнять J

Сегодня при переносе старого сайта и БД SQLна другой хостинг возникла ошибка.  Вернее, перенос прошел удачно, а возникла ошибка уже после при обращении к скрипту, который этой базой пользовался.

Итак ошибка:  «1267: Illegal mix of collations (cp1251_bin,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '=' (mysqlserver)».

1

Задача: избавится от нее и заставить нормально работать.

Сразу видно, что проблема где-то с кодировкой. Или «Обнаружена ошибка синтаксиса запроса к базе данных»

Решение: Идем в phpmyadmin– смотрим в какой кодировке таблица в БД – видим cp1251. Видимо давно база была создана в этой кодировке. Сервер кушает utf-8.

1 способ - можно исправить кодировку таблицы на нужную прямо в phpmyadmin.

2 способ – поколдовать в скрипте отвечающим за коннект и передачу данных.

Попробуем сразу после подключения явно указать кодировку, в которой собираемся передавать данные.

Поэтому в скрипте прописываем следуещее после строк коннекта (клиент, коннект и результат):

 

        mysql_query("SET character_set_client = 'cp1251'");

        mysql_query("SET character_set_connection = 'cp1251'");

        mysql_query("SET character_set_results = 'cp1251'");

Выглядит примерно так:

2

Кодировку, естественно, надо указать ту, которая вам нужна.

 

Проеверяем - все работает!

Последнее изменениеЧетверг, 20 Февраль 2014 14:43
  • Оцените материал
    (0 голосов)
  • Опубликовано в SQL phpmyadmin
  • Прочитано 11940 раз
SeRbGa

SeRbGa

мечтатель

Сайт: www.serbga.ru

Оставить комментарий

SeRbGa