За последние 24 часа нас посетили 34997 программистов и 1758 роботов. Сейчас ищут 786 программистов ...

С оператором like не хочет искать по строке в кириллице.

Тема в разделе "MySQL", создана пользователем jei, 19 дек 2012.

  1. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Вопрос по запросу к базе с оператором like не хочет искать по строке в кириллице.
    То есть если я делаю так

    Код (Text):
    1. $sel = mysql_query("select * from cis_clients2 where familiya   like('%Абросимов%') ;");
    то искать не будет по Абросимов, а если написать Abrosimov и поменять в базе то без проблем найдёт,что делать незнаю уже перепробывал все кодировки и в базе и в запросе

    Код (Text):
    1. mysql_query ("set character_set_client='utf8'");
    2.         mysql_query ("set character_set_results='utf8'");
    3.         mysql_query ("set collation_connection='utf8'");
    Код (Text):
    1. CREATE TABLE IF NOT EXISTS `cis_clients2` (
    2.   `id` int(6) NOT NULL AUTO_INCREMENT,
    3.   `familiya` varchar(50) NOT NULL,
    4.   `imya` varchar(50) NOT NULL,
    5.   `otchestvo` varchar(50) NOT NULL,
    6.   `nomerKarti` varchar(50) NOT NULL,
    7.   `dataRojdenya` varchar(75) NOT NULL,
    8.   `telefon` varchar(20) NOT NULL,
    9.   `dataPervogoPos` varchar(75) NOT NULL,
    10.   `adres` varchar(120) NOT NULL,
    11.   `hronZabal` varchar(255) NOT NULL,
    12.   `lechashVrach` varchar(75) NOT NULL,
    13.   PRIMARY KEY (`id`)
    14. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=344 ;
    спасибо
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Ты из скрипта вызываешь?
    Для начала надо убедиться в работоспособности запроса в phpmyadmin или еще каком средстве управления.

    И, кстати, кодировку клиента, по последним указаниям партии, следует задавать через mysql_set_charset!
     
  3. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Спасибо друг буду знать удалось решить вот так

    Код (Text):
    1. mysql_query("SET NAMES utf8");
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    это был сарказм?
    set names задает правильную кодировку клиента, НО не помогает правильно экранировать строки в mysql_real_escape_string!
    пруф http://php.net/mysql_real_escape_string , http://php.net/manual/en/mysqlinfo.concepts.charset.html
     
  5. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Какой сарказм.Правда очень помог.В некоторых местах просто спасла функция.