PHP — как правильно делать экранирование данных перед вставкой в БД?
Много статей на эту тему, я так понял сейчас считается наиболее безопасным способом использование PDO.
Так ли это?
Какие свежие статьи на эту тему можно посмотреть?
Да, Желательно использовать PDO. Почитать можно в доках языка, там вполне актуальная информация: PDO::prepare - Подготовка(компиляция) запроса PDO::bindParam - привязка параметра PDO::bindValue - привязка параметра 2 (Внимательне...
BindParam/Value отлично работают, в общем процесс происходит так: через метод PDO::prepare($query) подготавливается запрос (и более его изменить нельзя), он вернет PDOStatement который имеет сами методы bindParam/Value Через которые вы уже "привязываете данные к запросу". Так как запрос SQL уже был скомпилирован, то SQL инъекция уже невозможна (запрос отдельно от данных).
Помимо методов bindParam/Value данные можно передать напрямую при выполнении запроса методом PDOStatement::execute.
cyberlog: там один код для всего. он универсален. делает замену переменных на значения и оборачивает в апострафы/кавычки и т.д. в зависимости от типа. делается через preg_replace_callback() и внутреннюю функцию замены.