Приходится все таки обращаться... Проблема такова. При проверки никнейма на существовании пользователя у меня по каким то причинам не получается вывести данные если upper(NICKNAME) == upper('Хочутортик'), точнее upper не преобразует в верхний регистр Ru буквы. сам вывод должен получиться таков: Код (Text): array(14) { ["ID"]=> string(1) "1" ["NICKNAME"]=> string(20) "ХочуТортик" ["LOGIN"]=> string(10) "mouse-zver" ["PASSWORD"]=> string(13) "$2Cw51.ICu1Nw" ["DATAREGUSR"]=> string(10) "1425813534" ["MAIL"]=> string(10) "123@123.ru" ["NAMEUSR"]=> string(0) "" ["FAMILY_NAMEUSR"]=> string(0) "" ["BIRTHDAY"]=> string(0) "" ["NAMEAVATAR"]=> string(0) "" ["SMSNUM"]=> string(1) "0" ["AGENTBROWSER"]=> string(102) "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36" ["PINGTIME"]=> string(10) "1425813534" ["CITY"]=> string(0) "" } PDO запрос: Код (PHP): var_dump( $db->query("SELECT * FROM USRACCOUNT WHERE upper(NICKNAME) = 'Хочутортик' ")->fetch(PDO::FETCH_ASSOC)); перепробывал разные варианты: strtoupper('Хочутортик') //ХОЧУТОРТИК, хочутортик в мануале: mb_strtoupper... эффекта нету... ==== Код (PHP): array ( 0 => array ( 'ID' => '1', 'NICKNAME' => 'ХочуТортик', 'UTF_NICKNAME' => 'ХОЧУТОРТИК', 'LOGIN' => 'mouse-zver', 'UTF_LOGIN' => 'MOUSE-ZVER', 'PASSWORD' => '$2risXZmRciWQ', 'DATAREGUSR' => '1425832291', 'MAIL' => 'mouse-zver@xaker.ru', 'NAMEUSR' => '', 'FAMILY_NAMEUSR' => '', 'BIRTHDAY' => '', 'NAMEAVATAR' => '', 'SMSNUM' => '0', 'AGENTBROWSER' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36', 'PINGTIME' => '1425832291', 'CITY' => '', ), ) сделал пока так... будет возможность найдена исправлю..
это работает, а нужно выяснить почему upper не работает с Ru символами Добавлено спустя 35 секунд: upper(NICKNAME)
Я очень поверхностно знаком с SQLite, но в документации написано, что функции lower и upper, работают с ASCII, а в других случаях нужно расширение ICU. Может это натолкнет на правильный ход мыслей... Добавлено спустя 5 минут 23 секунды: P.S. А попробуйте сделать запрос так, как в мускуле: Код (PHP): SELECT * FROM USRACCOUNT WHERE BINARY NICKNAME = 'Хочутортик'
Дело в том что MySQLi не так придирчив и не чувствителен к регистру что облегчает этот вариант, но не прокатит с sqlite. Есть вариант преобразовывая входные данные в такие значения: &131# или как там пишутся.. вобщем не хочется велосипед изобретать.. http://unicode-table.com/ru/ Добавлено спустя 15 минут 25 секунд: или.. или.. или.. создавать доп столбец utf_nickname / login