使用PHP的PDO類,準備查詢會導致(如果僅在每個連接上執行一次查詢時未構成的性能影響)我正在創建一個小型數據訪問層,我想知道是否可以盲目準備所有查詢,或者是否應該只准備將被重用的查詢。即使只執行一次,我是否應該準備所有查詢?
3
A
回答
6
準備好的語句不僅適用於重複使用的查詢。它們應該用於所有具有不可信數據的查詢,確保綁定不可信數據。這消除了SQL注入機會。
0
不,這沒有任何意義。使用$ dbh-> quote & $ dbh-> query,它的安全性和快得多。
相關問題
- 1. 指令應該只執行一次
- 2. 執行所有查詢或什麼都不應該執行
- 3. 只執行一次jQuery ajax查詢
- 4. 準備和執行兩個查詢
- 5. 雄辯準備查詢,但不執行
- 6. 第一次訪問該網站時只需執行一次查詢
- 7. 雄辯的查詢只會準備,不會執行
- 8. Facebook的JavaScript執行兩次,但應該只運行一次
- 9. 即使是在php中,mysql查詢是否始終執行?
- 10. 如何只準備一次Cassandra Accessor查詢
- 11. 只有一次執行 - AJAX
- 12. 準備一次後我們可以執行準備好的語句多久?
- 13. 我應該一次加載所有數據一行還是一行 - MySQL - C#
- 14. 即使我想保留所有權利,我是否應該開源?
- 15. 是否有機會捕捉所有執行的查詢
- 16. Hibernate只執行查詢8次
- 17. 如何在PostgrSQL中使用已準備的查詢執行「解釋」語句,該查詢具有綁定參數?
- 18. PHP - PDO查詢執行兩次execute()只被調用一次
- 19. 只有選中的複選框應該執行進一步的ajax查詢
- 20. postgresql檢查執行預準備語句時是否存在
- 21. 只有函數執行一次,即使定時器多次調用函數
- 22. 準備查詢
- 23. 如何使用準備好的語句執行多個查詢?
- 24. Siebel策略只應執行一次執行兩次
- 25. 是否應該使用準備好的聲明?
- 26. 就緒函數指令應該只執行一次
- 27. 是否需要PL SQL查詢[執行立即]
- 28. 是否是Mysql IF EXIST該查詢應該使用什麼?
- 29. 我們是否應該在執行超時時使用Thread.sleep()?
- 30. 每次查詢後我應該關閉ResultSet還是在完成所有查詢後關閉它?
盲目準備沒有任何參數的查詢很好嗎?它是否會導致性能下降(甚至可以忽略不計)? – 2011-04-26 18:44:24
是的,會有非常小的性能影響。準備查詢時,它會發送到服務器進行解析,然後當您執行查詢時,它會再次發送。與只發出query()並且它只發送一次相反。 – Galen 2011-04-26 18:48:58
如果您擔心性能問題,您還可以設置PDO來模擬預準備語句,從而使得只有一次到服務器 – sreimer 2011-04-26 18:56:20