PDO 防止SQL 注入的方法
如果你已經從mysql 庫過渡到PDO,你可能想知道如何替換real_escape_string用於轉義發往資料庫的字串中的單引號的函數。雖然向每個字串添加斜杠可能看起來很麻煩,但 PDO 提供了一種更有效的替代方案。
PDO 準備的強大功能
為了防止 SQL 注入,PDO 建議使用其準備()方法。此方法透過啟用查詢計劃和元資訊的快取來優化應用程式的效能。此外,它消除了手動參數引用的需要,從而防止 SQL 注入攻擊。
PDO 準備如何工作
當您執行 PDO::prepare() 時,PDO建立一個準備好的聲明。然後該語句被編譯並緩存,提高執行效率。當您準備好執行帶有參數的查詢時,您可以呼叫 PDOStatement::execute(),它將參數注入到準備好的語句中,而無需手動引用。
用法範例
以下是使用PDOprepare() 和execute() 的範例:
<code class="php">$pdo = new PDO("..."); $sql = "INSERT INTO users (username, email) VALUES (?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$username, $email]);</code>
透過使用PDOprepare() 和execute( ),您可以安全地執行參數化查詢,而無需手動字串轉義。這可以簡化您的程式碼並透過防止 SQL 注入攻擊來增強安全性。
以上是PDO如何防止SQL注入並取代轉義單引號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!