imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 27.07.2004, 00:41     # 1
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
MySQl и запрос

привет всем...
сталкнулся с такой проблемой что с русскими параметрами
вот такой запрос не срабатывыет

SELECT username FROM user WHERE username='косой'

косой в баже точно есть
А
SELECT username FROM user WHERE username='shuron'
срабытывает как и полодено...

Почему MySQL неможет Where с русскими параметрами исполнить?
Как это исправить?
shuron вне форума  
Старый 27.07.2004, 00:50     # 2
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
А кодировка какая?
__________________
убрано по просьбе администратора
Sheryld вне форума  
Старый 27.07.2004, 01:11     # 3
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
Кодировка где?
ааа. думаешь от несовпадения кодировок...
даже не знаю как посмотреть ..

Вот так это точно выглядит..
$username из формы получаю

$result = $db->query('SELECT username FROM user WHERE username=\''.addslashes($username).'\' OR username=\''.addslashes(preg_replace('/[^\w]/', '', $username)).'\'')

Кстати что делает preg_replace('/[^\w]/', '', $username)?

Если пробую из phpMyAdmin
тоже самое..
shuron вне форума  
Старый 27.07.2004, 03:29     # 4
AleXXXSoft
Guest
 
Сообщения: n/a

прег удаляет из юзернейма все символы кроме тех, что образуют слово

хинт: не пользуй addslashes - для мускула, имхо не очень... есть специальная функция mysql_escape_string

и еще, узнай, в какой кодировке передается параметр из формы, и в какой хранится в базе...
 
Старый 27.07.2004, 09:37     # 5
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
Цитата:
shuron:
думаешь от несовпадения кодировок...
даже не знаю как посмотреть
show variables like '%char%'

Цитата:
AleXXXSoft:
прег удаляет из юзернейма все символы кроме тех, что образуют слово
там ни плюсика ни звездочки нет... только первый символ и проверит.. или я не проснулся еще?
__________________
Nunc est bibendum
is_absent вне форума  
Старый 28.07.2004, 02:51     # 6
AleXXXSoft
Guest
 
Сообщения: n/a

нет, не только первый символ... где ты там видишь признак начала строки?
 
Старый 28.07.2004, 06:32     # 7
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
AleXXXSoft
не проснулся ещё. виноват. неправ...
__________________
Nunc est bibendum
is_absent вне форума  
Старый 28.07.2004, 11:34     # 8
dacuan
Junior Member
 
Регистрация: 04.03.2004
Сообщения: 56

dacuan Путь к славе только начался
А если для проверки сделать

var_dump(preg_replace('/[^\w]/', '', $username));

Или

var_dump(preg_replace('/[^\w]/', '', 'косой'));

Есть у меня подозрение, что preg удаляет все русские символы.
dacuan вне форума  
Старый 28.07.2004, 11:38     # 9
AleXXXSoft
Guest
 
Сообщения: n/a

если локализация в ПХП не работает, тогда действительно он будет удалять русские буквы как символы, не составляющие слова.
 
Старый 30.07.2004, 16:39     # 10
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
Цитата:
Сообщение от is_absent
show variables like '%char%'
Не понял что с этм делать?

Цитата:
Сообщение от AleXXXSoft
если локализация в ПХП не работает, тогда действительно он будет удалять русские буквы как символы, не составляющие слова.
Как локализацию посмотреть?
или изменить?
shuron вне форума  
Старый 30.07.2004, 17:09     # 11
dacuan
Junior Member
 
Регистрация: 04.03.2004
Сообщения: 56

dacuan Путь к славе только начался
shuron

Локаль устанавливается функцией setlocale. Например для русского языка в кодировке windows-1251 необходимо добавить следующую строку:

setlocale(LC_ALL, "ru_RU.CP1251");

Подробнее по аргументам посмотри в мануале. Но я все-равно не уверен, что и с установленной локалью регулярные выражения будут правильно отрабатывать русские символы.
dacuan вне форума  
Старый 30.07.2004, 22:37     # 12
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
shuron
ты хотел посмотреть, какая кодировка используется в базе данных.
это запрос к базе данных MySQL, который покажет все переменные, в которых встречается строка char (charset, charsets).
__________________
Nunc est bibendum
is_absent вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:47.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.