За последние 24 часа нас посетили 16503 программиста и 1677 роботов. Сейчас ищут 922 программиста ...

Illegal mix of collations (utf8_general_ci,IMPLICIT) and (cp

Тема в разделе "MySQL", создана пользователем regret, 22 сен 2008.

  1. regret

    regret Активный пользователь

    С нами с:
    14 май 2008
    Сообщения:
    33
    Симпатии:
    0
    вылетает ошибка=
    \Illegal mix of collations (utf8_general_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation '='

    default-character-set=cp1251
    character-set-server=cp1251
    collation-server=cp1251_general_ci
    init-connect="SET NAMES cp1251"
    в my.cnf

    в базе все строки в utf8_general_ci
    проблем не было, как вот возникли именно с этим запросом.. ОШИБКУ НЕ ВИЖУ.. может вы увидите..хз именно в самом запросе..


    PHP:
    1.  
    2.  
    3.  
    4. $fields = 'seeder, peer_id, ip, port, uploaded, downloaded, userid, last_action, UNIX_TIMESTAMP(NOW()) AS nowts, UNIX_TIMESTAMP(prev_action) AS prevts,UNIX_TIMESTAMP(last_action) AS ts';
    5.  
    6.  
    7. $limit = '';
    8. if ($numpeers > $rsize)
    9.     $limit = 'ORDER BY RAND() LIMIT '.$rsize;
    10.  
    11.  
    12. $res = mysql_query('SELECT '.$fields.' FROM peers WHERE torrent = '10' '.$limit) or err(mysql_error());
    13.  
    14.  
    15.  
    16.  
    17.  
    18.  
    19.  
    20.  
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Попробуй WHERE torrent = 10

    P.S. CONVERT() dev.mysql.com
     
  3. Anonymous

    Anonymous Guest

    нахрена torrent - текстовое поле?
     
  4. Anonymous

    Anonymous Guest

    это воообще работать не будет. Даже не скомпилится. Покажите НОРМАЛЬНЫЙ код, который у вас выдает эту ошибку.
     
  5. regret

    regret Активный пользователь

    С нами с:
    14 май 2008
    Сообщения:
    33
    Симпатии:
    0
    сорри что ввел всех в заблуждение.. писал ночью и допустил грубейшую ошибку на форуме)))



    PHP:
    1. $torrentid = $torrent['id'];
    2.  
    3. $fields = 'seeder, peer_id, ip, port, uploaded, downloaded, userid, last_action, UNIX_TIMESTAMP(NOW()) AS nowts, UNIX_TIMESTAMP(prev_action) AS prevts,UNIX_TIMESTAMP(last_action) AS ts';
    4.  
    5. $numpeers = $torrent['numpeers'];
    6. $limit = '';
    7. if ($numpeers > $rsize)
    8.     $limit = 'ORDER BY RAND() LIMIT '.$rsize;
    9. $res = mysql_query('SELECT '.$fields.' FROM peers WHERE torrent = '.$torrentid.' '.$limit) or err(mysql_error());
     
  6. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Буагага, TBDev :D

    Выкинуть. На. Да, на тот самый http://lleo.aha.ru/na/

    Я 4 года копал этот исходник, переделать до нормального состояния это не возможно.

    В данном случае у тебя поле в UTF8, а исходник в cp1251. Или наоборот. Синхронизируй.