Ошибка авторизации

Тема в разделе "Базы данных", создана пользователем linpc, 13 июл 2014.

Статус темы:
Закрыта.
Модераторы: latteo
  1. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    178
    Симпатии:
    52
    Возникает ошибка при вводе русского имени и авторизации
    SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
    Как лечить?
     
  2. yaski

    yaski

    Регистр.:
    21 фев 2010
    Сообщения:
    491
    Симпатии:
    292
    Код:
    alter table <имя таблиы> CONVERT TO CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'
    alter database <имя базы> collate 'utf8_unicode_ci'
    Или подключаясъ к базе принудительно указывай кодировку
    Код:
            mysql_query("SET character_set_client = 'cp1251'");
            mysql_query("SET character_set_connection = 'cp1251'");
            mysql_query("SET character_set_results = 'cp1251'");
     
    Последнее редактирование: 13 июл 2014
    Шумадан нравится это.
  3. BaBL

    BaBL Постоялец

    Регистр.:
    13 ноя 2012
    Сообщения:
    144
    Симпатии:
    87
    Это похоже не ошибка авторизации, а ошибка конкретного запроса. У вас слева и справа от "=" стоят разные типы полей (кодировки).
    сделайте бэкап и исправьте поле с latin1:
    Код:
    ALTER TABLE `tablename` CHANGE `columnname` `columnname` VARCHAR( 120 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL
     
    Шумадан нравится это.
Статус темы:
Закрыта.