保存PDO准备的语句以便在会话中重用时是否有任何意义?缓存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对象后(例如在会话中)保存PDOStatement对象是否合理?如果是这样,那么最好的方法是什么?将每个准备好的语句保存在关联数组中是否是一种很好的做法,因为它是以SQL查询字符串作为每个关键字的关键字创建的?
在进一步阅读中,我发现你不能使用绑定PARAMS的ORDER BY和语句的ASC/DESC一部分。当我用固定值替换它们时,性能会提高。
Thanks Nonym - 我想知道缓存PDOStatement对象而不是记录集。 –