Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: проверка наличия данных. опять по поводу кавычек и бд, простите.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: проверка наличия данных
broshurkaplus
Отправлено: 15 Июня, 2012 - 12:20:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




здравствуйте, давно не посещал.
обнаружил у себя на одном сайте небольшой баг.
вобщем так

есть в бд строка бла \"бла\"
требуется не допустить повторной вставки такой же строки

делаю так:

PHP:
скопировать код в буфер обмена
  1. $zn=trim($_POST['zn']);
  2. $q_proverka=@mysql_query("SELECT aaa FROM t1 WHERE aaa='".$zn."'");
  3. $r_proverka=@mysql_fetch_row($q_proverka);
  4.     if($r_proverka[0]==$zn){тут обрабатываю ответ,пользователю но при кавычках, как в примере - не работает


не срабатывает!?
если сделать так
PHP:
скопировать код в буфер обмена
  1. $q_proverka=@mysql_query("SELECT aaa FROM t1 WHERE aaa='".addslashes($zn)."'");

то работает,
но если

PHP:
скопировать код в буфер обмена
  1. $zn=addslashes(trim($_POST['zn']));
  2. $q_proverka=@mysql_query("SELECT aaa FROM t1 WHERE aaa='".$zn."'");

то нет

если возможно объясните популярно почему при использовании addslashes до запроса не работает
а если применить в запросе то работает?
ведь по идее пост данные уже заэкранироваными приходят и в использовании addslashes не должно быть необходимости?

пс - перечитал кучу мануалов, запутался уже.
 
 Top
DeepVarvar Супермодератор
Отправлено: 15 Июня, 2012 - 13:16:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




 
 Top
broshurkaplus
Отправлено: 15 Июня, 2012 - 13:38:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




я использую
mysql_escape_string
дл яданных перед вставкой в бд

мне бы: почему addslashes не срабатывает если применить её до запроса, а не в самом запросе, ведь по идее смысл не меняется?

я пытался до запроса ставить

-не работает
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB