Много было написано о преимуществах использования PDO::prepare
, но мало что было написано о преимуществах использования PDO::query
.Я считаю, что PDO::query
создан, чтобы служить цели, и должно быть некоторое относительное преимущество использования этой функции по сравнению с PDO::prepare
.
У меня есть запрос, который выглядит так:
SELECT * from Table ORDER BY id DESC LIMIT 100;
Этот запрос не содержит пользовательских данных для экранирования и переменных для повторных запросов.Должен ли я использовать PDO::query
, вернуться к mysqli_query
или придерживаться PDO::prepare
в этом случае?
ОБНОВЛЕНИЕ : Дальнейшее изучение общего журнала запросов показывает это для обоих PDO::prepare
и PDO::query
:
22 Connect user@localhost on Database
22 Prepare SELECT * from Table ORDER BY id DESC LIMIT 100
22 Execute SELECT * from Table ORDER BY id DESC LIMIT 100
22 Close stmt
22 Quit
Я ожидал, что PDO::query
произведет:
22 Connect user@localhost on Database
22 Query SELECT * from Table ORDER BY id DESC LIMIT 100
22 Quit
Но это происходит только с обоими, когда setAttribute(PDO::ATTR_EMULATE_PREPARES, true)
.Я весьма удивлен результатом, который я получаю.Кажется, что PDO::query
также генерирует готовые операторы.