Осуществляется выборка по SELECT LIKE. Но при вводе могут быть символы % и _ которые надо заэкранировать. Делаю так :
................................ .............
$а = 'куку_';
$replace_symbols = array('%' => '\%', '_' => '\_'); // экранируем спецсимволы поиска
$а = iconv("UTF-8", "UTF-8//IGNORE", strtr($а, $replace_symbols));
$query_string = "SELECT `поле1`, `поле2` FROM `таблица`
LEFT JOIN `таблица2` ON таблица.поле3 = таблица2.id
LEFT JOIN `таблица3` ON таблица.поле4 = таблица3.id
................................ ................................ .............
WHERE таблица.поле5 LIKE '" . $а . "%' ESCAPE '\'
ORDER BY таблица.поле6 desc";
$result_id = mysql_query($query_string, $link);
Экранирование происходит нормально, а вот поиск почему-то не работает, хотя вроди должен. Без ESCAPE проверял - работает, но как только в строку попадает спецсимвол - непредвиденные результаты.
|