參數化查詢:防止 SQL 注入的盾牌
了解參數化查詢
參數化查詢,也稱為預先準備語句,是一種編寫 SQL 語句的技術。 它將動態資料(參數)與查詢的固定部分分開。這允許在執行過程中進行有效的參數設定。
PHP 和 MySQL:實際示範
讓我們用一個包含使用者電子郵件地址參數的 SQL 查詢來說明:
<code class="language-sql">SELECT * FROM users WHERE email = 'foo@example.com'</code>
使用 mysqli 實作
<code class="language-php"><?php $mysqli = new mysqli('localhost', 'username', 'password', 'database'); $stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?"); $stmt->bind_param('s', 'foo@example.com'); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { // Process the retrieved data... } $stmt->close(); ?></code>
使用 PDO 實作
<code class="language-php"><?php $pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password'); $stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?"); $stmt->bindParam(1, 'foo@example.com', PDO::PARAM_STR); $stmt->execute(); $result = $stmt->fetchAll(); foreach ($result as $row) { // Process the retrieved data... } ?></code>
參數化查詢的主要優點:
以上是參數化查詢如何防止 SQL 注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!