Предоставляет ли подготовленный оператор какое-либо преимущество в безопасности по сравнению с PDO :: quote в одноразовых запросах?
Да: он работает как для числовых параметров, так и для строк.PDO::quote()
работает только для строк и дат.
Я прочитал, что подготовленный оператор немного медленнее из-за двухэтапного выполнения.
Если это так, разница незначительна, если ваша сеть не работает очень медленно или не нуждается в ремонте.Не беспокойтесь об этом, если вы не работаете в очень, очень высоком масштабе (подсказка: вы не работаете в таком масштабе).
Первоначальный этап подготовки выполняется на сервере базы данных, илион обрабатывается расширением PDO?
Либо, в зависимости от атрибута PDO::ATTR_EMULATE_PREPARES
.Если для этого параметра установлено значение true, то prepare()
не используется (кроме сохранения строки SQL в переменной), а затем, когда вы execute()
, интерполирует ваши параметры в строку SQL и выполняет запрос без подготовкиit.
Если PDO::ATTR_EMULATE_PREPARES
имеет значение false, выполняется подготовка на стороне сервера.СУБД хранит некоторый объект в памяти для представления запроса и не может выполнить этот подготовленный запрос, пока вы не отправите значения параметров отдельно в вызове execute.