внесу ясность: lexa, yok'у удобно когда безопасно... он спрашивает о безопасности и не получает ответа. Я же говорю что использовать PHP: <? $sql='SELECT * FROM `table` WHERE `id`=' ".mysql_real_escape_string($login)." '; ?> или PHP: $login=mysql_real_escape_string($login); $sql='SELECT * FROM `table` WHERE `id`=' ".$login." '; одно и тоже... Но всетаки возникает вопрос. Почему автор процитированой статьи намекает на то что ее надо использовать непосредственно в запросе? Наверное потому что он привел пример с универсальной функцией... когда мы передаем ей значение не один раз и она нам не один раз что то возвращает и невсегда то что надо. так что не ленитесь использовать mysql_escape_string() непосредственно перед вводом данных. Допустим я тоже недоконца понимаю как это отражается на безопасности для меня всеравно что так что иначе будет безопасно если есть резинка(mysql_escape_string()) =))
Вот, вот, и я о том же, почему именно в запросе рекомендует. Ведь если непосредственно перед запросом обработать $name=mysql_real_escape_string($login); и уже в сам запрос передать можно уже даже $name(ниже напишу дополнение) SELECT * FROM `table` WHERE `id`=' ".$name." '; эта обработка происходит на сервере, и даже имя переменной поменялось, думаю вообще невозможно както повлиять. А насчет изменения имени, $name а было $login, просто читал статью о иньекциях, и там запросы подбирались http://injection.rulezz.ru/MSSQL-ASP-Injection.html по такому принцыпу, искалась таблица по LIKE, и таблица с логином, часто называются близко, log pass ,
Я вообще-то ответил. Можно и в самом запросе, но тогда читать его будет несколько хуже, особенно если переменных много.
Я чё забыл с корейской раскладки переключиться или это топик, в котором спрашивают, но ответы игнорируют?