Есть ли смысл сохранять подготовленные операторы PDO для повторного использования в сеансе?
Я создаю сайт, который использует полнотекстовые запросы MySQL, которые я собираю в своем PHP, например
SELECT * FROM table
WHERE MATCH (title) AGAINST ($search_string IN BOOLEAN MODE) AND
MATCH (keywords) AGAINST ($keywords IN BOOLEAN MODE)
ORDER BY $order_by $asc_desc
Кажется, что когда я подготавливаю и выполняю его со связанными параметрами, выполнение этого вида запроса занимает гораздо больше времени, чем когда я просто подготавливаю и выполняю строку запроса со включенными значениями.Но мне нужно использовать подготовленные операторы, чтобы предотвратить риск внедрения SQL.
В любом сеансе я, скорее всего, выполнил бы один и тот же запрос несколько раз с разными значениями параметров.Имеет ли смысл сохранять объект PDOStatement после его создания (например, в сеансе)?Если так, что было бы лучшим способом сделать это?Будет ли хорошей практикой сохранять каждый подготовленный оператор в ассоциативном массиве по мере его создания со строкой SQL-запроса в качестве ключа для каждого?
При дальнейшем чтении я обнаружил, что нельзя использовать связанные параметрыдля ORDER BY и ASC / DESC часть заявления.Когда я заменяю их фиксированными значениями, производительность улучшается.