![]() |
MySQl и запрос
привет всем...
сталкнулся с такой проблемой что с русскими параметрами вот такой запрос не срабатывыет SELECT username FROM user WHERE username='косой' косой в баже точно есть А SELECT username FROM user WHERE username='shuron' срабытывает как и полодено... Почему MySQL неможет Where с русскими параметрами исполнить? Как это исправить? |
А кодировка какая?
|
Кодировка где?
ааа. думаешь от несовпадения кодировок... даже не знаю как посмотреть ..:( Вот так это точно выглядит.. $username из формы получаю $result = $db->query('SELECT username FROM user WHERE username=\''.addslashes($username).'\' OR username=\''.addslashes(preg_replace('/[^\w]/', '', $username)).'\'') Кстати что делает preg_replace('/[^\w]/', '', $username)? Если пробую из phpMyAdmin тоже самое.. |
прег удаляет из юзернейма все символы кроме тех, что образуют слово
хинт: не пользуй addslashes - для мускула, имхо не очень... есть специальная функция mysql_escape_string и еще, узнай, в какой кодировке передается параметр из формы, и в какой хранится в базе... |
Цитата:
Цитата:
|
нет, не только первый символ... где ты там видишь признак начала строки?
|
AleXXXSoft
не проснулся ещё. виноват. неправ... |
А если для проверки сделать
var_dump(preg_replace('/[^\w]/', '', $username)); Или var_dump(preg_replace('/[^\w]/', '', 'косой')); Есть у меня подозрение, что preg удаляет все русские символы. |
если локализация в ПХП не работает, тогда действительно он будет удалять русские буквы как символы, не составляющие слова.
|
Цитата:
Цитата:
или изменить? |
shuron
Локаль устанавливается функцией setlocale. Например для русского языка в кодировке windows-1251 необходимо добавить следующую строку: setlocale(LC_ALL, "ru_RU.CP1251"); Подробнее по аргументам посмотри в мануале. Но я все-равно не уверен, что и с установленной локалью регулярные выражения будут правильно отрабатывать русские символы. |
shuron
ты хотел посмотреть, какая кодировка используется в базе данных. это запрос к базе данных MySQL, который покажет все переменные, в которых встречается строка char (charset, charsets). |
| Часовой пояс GMT +4, время: 11:48. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.