Какие параметризованные запросы объясняются простым английским языком? - PullRequest
0 голосов
/ 05 февраля 2011

Может кто-нибудь объяснить мне простым языком, что такое параметризованные запросы и как реализовать их в PHP для базы данных MySQL, чтобы избежать внедрения SQL?

1 Ответ

1 голос
/ 05 февраля 2011

Раздел подготовленные операторы и хранимые процедуры в руководстве по PHP, хотя он относится конкретно к PDO, хорошо описывает это, когда говорит:

Их можно рассматривать как своего рода скомпилированный шаблон для SQL, который приложение хочет запустить, что может быть настраивается с использованием переменных параметров. Подготовленные заявления предлагают два основных Преимущества:

  • Запрос нужно только проанализировать (или подготовлено), но может быть выполнено несколько раз с тем же или разные параметры. Когда запрос готов, база данных будет анализировать, компилировать и оптимизировать это планировать выполнение запроса. За сложные запросы этот процесс может занять достаточно времени, чтобы это было заметно замедлить приложение, если есть нужно повторить один и тот же запрос много раз с разными параметрами. От используя подготовленное заявление приложение избегает повторения анализировать / компилировать / оптимизировать цикл. это означает, что подготовленные заявления используют меньше ресурсов и, следовательно, работать быстрее.

  • Параметры к подготовленным высказываниям не нужно цитировать; водитель автоматически обрабатывает это. Если Приложение использует исключительно подготовленные заявления, разработчик может быть уверен что SQL-инъекция не произойдет (однако, если другие части запрос строится с неэкранированный ввод, SQL-инъекция еще возможно).

Если вам нужен конкретный пример того, как их использовать, на приведенной выше странице также есть примеры кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...