[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: LIKE и прослешивание
Владимир55
В имеющемся в таблице тексте встречаются кавычки, причем как одинарные, так и двойные. В связи с этим при занесении данных в таблицу использовалось прослешивание.

Теперь необходимо осуществить поиск по таблице с использованием LIKE и это у меня никак не получается.

При исполнении не выдается ошибок, если использовать вот такой код:
$rod_grupp = addslashes($rod_grupp); 	// Прослешивание кавычек
$res = mysql_query("SELECT `adres_grupp`, `n_tov_grupp` FROM `grupp` WHERE `adres_grupp` LIKE '$rod_grupp%'");
echo $rod_grupp . " " . mysql_errno()." 50 : ".mysql_error()."<BR>";


Однако поиск производится неверно - находятся не все данные, удовлетворяющие условию.

Как настроить этот код для правильной работы?
inpost
для кавычек использовать надо: mysql_real_escape_string, а не addslashes.
Кроме этого покажи, какой запрос у тебя в итоге выходит, и какие записи не находятся, а какие находятся.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Владимир55
Какие запросы не находятся, определить не так просто, поскольку массив большой, но я попробую, только потребуется время.

А mysql_real_escape_string надо использовать вообще, или Вы имеете в виду, что его надо использовать в этом фрагменте кода?
Владимир55
Не находятся там, где есть одиночная кавычка.
Игорь_Vasinsky
mysql_real_escape_string
http://php.net/manual/ru/function.mysql-re...cape-string.php

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
inpost
Ты используешь теперь mysql_real_escape_string ВМЕСТО addslashes, и у тебя не работает?


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Владимир55
Это ситуация с addslashes.

Сейчас попробую mysql_real_escape_string
Игорь_Vasinsky
нужно учитывать то что если магические кавычки включены - то произойдёт 2е экранирование, т.е. искаженные входных данных

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
Владимир Николаевич, тема явно не для раздела администрирования smile.gif
а по запросу может все-таки LIKE '%$rod_grupp%' ? с двумя знаками процентов?


_____________
Стимулятор ~yoomoney - 41001303250491
Nikitian
При использовании поиска like не забывайте так же экранировать символы % и _, т.к. эти символы используются для масок поиска и результаты могут быть неожиданными.
А так, всё верно написали про mysql_real_escape_string() и magick quotes
Игорь_Vasinsky
Цитата
При использовании поиска like не забывайте так же экранировать символы % и _

совершенно верно

mysql_real_escape_string(addcslashes($variable, '%_'))


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.