保存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對象而不是記錄集。 –