что такое параметризованный запрос? пожалуйста, дайте мне пример в PHP и mysql ..
Параметрированный запрос (также известный как подготовленный оператор ) является средством предварительной компиляции инструкции SQL, так что все, что вам нужно предоставить, это «параметры» (подумайте «переменные»), которые необходимо вставить в оператор для быть казненным. Он обычно используется как средство предотвращения атак SQL-инъекций .
Подробнее об этом можно узнать на странице PDO на PHP (PDO – это уровень абстракции базы данных), хотя вы также можете использовать их, если используете интерфейс базы данных mysqli (см. Документацию по подготовке ).
Это ясное и сжатое объяснение того, что это такое, и как оно работает. Как и почему использовать параметризацию
Существенный процесс связан с тем, что сервер выполняет предварительную обработку запроса без параметров, чтобы он знал тип запроса. Таким образом, например, запрос SELECT является только запросом SELECT и не может быть объединен параметром (переменной запроса) как SELECT / DROP или какой-либо другой инъекцией MySql. Вместо этого данные инжекции будут просто строковыми данными в поле параметров.
Этот оператор является одной из особенностей системы базы данных, в которой тот же оператор SQL выполняет многократно с высокой эффективностью. Подготовленные операторы являются одним из видов шаблона и используются приложением с различными параметрами. Справочная статья
Система баз данных может выполнять один и тот же оператор SQL без повторения синтаксического анализа, компиляции и оптимизации снова и снова для одного и того же вида SQL-запроса.
Вы можете написать или создать подготовленный оператор в MySQL, но это не эффективный способ, потому что бинарный протокол с помощью подготовленного API-интерфейса лучше.
Но вы все же можете писать, и даже это не требует каких-либо других программ, которые вы можете напрямую писать в SQL. Вы можете использовать подготовленный оператор для программы MySQL Client. Вы также можете использовать подготовленный оператор в хранимой процедуре для динамического SQL-подхода.
Создайте подготовленный оператор в MySQL: ссылка взята из этой статьи
PREPARE TestStmt FROM 'SELECT * FROM Test WHERE TestNumber=?';
Вы можете использовать PHP-код для управления подготовленным оператором через свой API или управлять на уровне JDBC.
Параметрированный запрос – это запрос, в котором заполнители используются для параметров, а значения параметров предоставляются во время выполнения.
Зачем использовать Параметрированный запрос