1. 程式人生 > >PHP:PDO prepare預處理

PHP:PDO prepare預處理

模擬 sql語句 大量 ont 分析 content 底層 try 通過

許多成熟的數據庫都支持預處理語句(Prepared Statements)的概念。它們是什麽東西?你可以把它們想成是一種編譯過的要執行的SQL語句模板,可以使用不同的變量參數定制它。預處理語句具有兩個主要的優點:

查詢只需要被解析(或準備)一次,但可以使用相同或不同的參數執行多次。當查詢準備好(Prepared)之後,數據庫就會分析,編譯並優化它要執行查詢的計劃。對於復雜查詢來說,如果你要重復執行許多次有不同參數的但結構相同的查詢,這個過程會占用大量的時間,使得你的應用變慢。通過使用一個預處理語句你就可以避免重復分析、編譯、優化的環節。簡單來說,預處理語句使用更少的資源,執行速度也就更快。

傳給預處理語句的參數不需要使用引號,底層驅動會為你處理這個。如果你的應用獨占地使用預處理語句,你就可以確信沒有SQL註入會發生。(然而,如果你仍然在用基於不受信任的輸入來構建查詢的其他部分,這仍然是具有風險的)

正因為預處理語句是如此有用,它成了PDO唯一為不支持此特性的數據庫提供的模擬實現。這使你可以使用統一的數據訪問規範而不必關心數據庫本身是否具備此特性。

PHP:PDO prepare預處理