利用MySQLi 中的參數進行高效、安全的查詢
在PHP 資料庫程式設計領域,透過透過MySQLi 介面使用MySQL 時,查詢涉及動態參數的場景是很常見的。考慮以下範例:
SELECT $fields FROM $table WHERE $this = $that AND $this2 = $that2
要透過將值插入SQL 字串來手動建立此類查詢,您可以執行以下操作:
$search = array('name' => 'michael', 'age' => 20); $query = "SELECT $fields FROM $table WHERE name = '$search[name]' AND age = '$search[age]'";
但是,這種方法會引起以下問題SQL注入漏洞。為了解決這個問題,MySQLi 提供了使用參數化查詢的強大解決方案。
參數化查詢的強大功能
參數化查詢可讓您獨立於 SQL 語句本身傳遞查詢參數。這可以防止利用使用者輸入的惡意程式碼執行,從而顯著增強安全性。上述範例的參數化查詢如下圖所示:
$db = new mysqli(...); $name = 'michael'; $age = 20; $stmt = $db->prepare("SELECT $fields FROm $table WHERE name = ? AND age = ?"); $stmt->bind_param("si", $name, $age); $stmt->execute(); $stmt->close();
詳細說明
其他提示
以上是MySQLi 中的參數化查詢如何保護 PHP 應用程式免受 SQL 注入漏洞的影響?的詳細內容。更多資訊請關注PHP中文網其他相關文章!