Во-первых, "знать ООП" - это не значит уметь написать класс с методами и свойствами. Знать ООП - это значит уметь проектировать адекватную иерархию классов. И если ты это хоть один раз делал, то у тебя потом даже мизерной идеи не возникнет, не стоило ли то же самое писать на процедурах.
Назар Мокринский: я доказал тебе, дурашка, простую мысль, что mysqli_real_escape_string() не предназначена для защиты от инъекций, и не должна никогда использоваться для этих целей. Что характерно, в документации про использование её в этих целях тоже ничего не написано :) Но даже имея наглядное доказательство на руках, ты все равно не понял. Потому что с понималкой-то у тебя как раз и нету. Есть и другие причины, по которым ни в коем случае нельзя использовать эту функцию в целях защиты от инъекций. А надо использовать плейсхолдеры. Всему миру это давно известно, и только дремучие несчастные дети из рунета все так же советуют друг другу "обработку данных через mysqli_real_escape_string()". И будут советовать еще сто лет. Потому что не учатся. А не учатся потому что не хотят. А не хотят потому что и так считают себя самыми умными. И в итоге остаются дуркаками. Все, богадельня закрыта, тебе больше не подаю.
Назар Мокринский: особенно доставляет фраза "выбор между intval и (int) зависит от ситуации и того, что именно ожидается получить" :) Твой багаж знаний просто неисчерпаем, гы гы
Назар Мокринский: я так и думал, что ты попытаешься съехать с темы именно этим способом. С понтом ты забыл, что мы говорили про волшебые защитные свойства mysqli_real_escape_string, которые внезапно куда-то испарились :)
не надо предполагать. ты все совершенно правильно предположил в ответе. А в комментарии написал чушь. просто поверь, что википедию пишут не совсем конченые идиоты.
Назар Мокринский: это не ошибка. Ты, в довершение ко всему, не знаешь синтаксиса SQL. Я тебе помогу. $limit=mysqli_real_escape_string($db, "5;DROP TABLE users"); $sql = "SELECT * FROM t LIMIT $limit"; попробуй исправить эту "ошибку".
Алексей: не надо тупить. Виеипедию пишут не тупые похапешники. И никто никого на другой язык против его воли не перекеидывает. Так делают только российские ламеры.
Назар Мокринский: Во-первых, не две, а одна, $id=mysqli_real_escape_string($db, "5;DROP TABLE users"); $sql = "SELECT * FROM t WHERE id=$id"; Во-вторых, то, что ты этот пример так и не смог понять говорит о тебе совсем уж плохо.
как всегда, одноклеточный ответ. наш старательный хомячок показал, что он может копировать код из мануала. А вот подумать о том, нужен этот код кому-нибудь - думалка не выросла еще :)
Назар Мокринский: я говорил именно об этом, что ты будешь юлить и цепляться за любую возможность :) Ок, если эта ошибка мешает тебе понять суть примера - вот исправленная версия: $id=mysqli_real_escape_string("5;DROP TABLE users"); $sql = "SELECT * FROM t WHERE id=$id";