如果一個參數是整數,並不是來自用戶輸入,它是一個變量,我設置爲$type = 5;
,我是否還需要爲它做一個佔位符,就像我對來自用戶輸入(WHERE type = ?
)的參數所做的那樣?它有什麼好處嗎?即使我知道參數的類型,是否需要準備語句?
3
A
回答
3
出於安全原因,您可以在任何地方進行參數設置是一個不錯的主意,但您不必這樣做。參數化查詢更有可能受益於查詢緩存的效果,但您是否會看到性能優勢取決於您的方案。
有些情況下您需要直接添加SQL;例如,列和表名不能被參數化。只要仔細過濾這些,你會沒事的。
1
我只是爲了安全目的而使用準備好的語句。雖然參數不是直接來自用戶輸入,但有人可能能夠在其中注入有害代碼。可能會破壞你的sql數據庫
相關問題
- 1. Python mysql是否準備好語句或者我需要escape_string()?
- 2. MySQL準備好的語句是否仍然需要使用mysql_escape_string
- 3. 如何知道是否準備好的語句被緩存?
- 4. neo4j-jdbc是否真的需要準備語句?
- 5. PDO準備語句參數
- 6. FindBugs說我需要「使用準備好的語句」?怎麼樣?
- 7. 模板參數是否需要前向聲明或者是否需要知道類型定義
- 8. PHP:準備好的語句,IF語句需要幫助
- 9. MySql C API:是否支持準備語句命名參數?
- 10. 我是否需要使用準備好的語句來獲取數據庫中的數據?
- 11. 使用預準備語句時,mysql_real_escape_string()是否必要?
- 12. 知道gotoAndPlay是否準備就緒
- 13. PHP&mySQLi:使用準備語句時是否還需要檢查用戶輸入?
- 14. mdb2準備語句與多種類型
- 15. 如何知道進程句柄是否準備就緒
- 16. 使用準備好的語句設置LONG數據類型
- 17. 如何知道類型參數是否是動態的?
- 18. 我是否需要使用Dom操作的準備事件?
- 19. 在參數中準備語句?
- 20. 多參數「IN」準備語句
- 21. 我如何知道方法所需的參數類型?
- 22. 我需要知道我是否正確使用getline
- 23. PHP中的UPDATE語句需要知道是否選擇了新文件
- 24. 準備語句
- 25. ProtocolViolation:錯誤:綁定消息提供0參數,但準備語句「」需要1
- 26. 需要的類型參數是什麼?
- 27. 是否可以統計PDO準備語句中的參數數量?
- 28. 是否需要爲github api準備後端語言?
- 29. 我是否需要使用多個使用語句?
- 30. 使用參數化和準備語句的數據庫訪問
如果你用單向而不是兩種方式做事情總是比較簡單:) –
從技術上說:沒有。爲了清楚和未來打樣,也許是的。 – deceze
也值得一讀:http://stackoverflow.com/questions/535464/when-not-to-use-prepared-statements – halfer