首頁 >後端開發 >php教程 >如何在 MySQL INSERT 語句中安全地包含 PHP 變數?

如何在 MySQL INSERT 語句中安全地包含 PHP 變數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-30 14:38:14413瀏覽

How Can I Safely Include PHP Variables in MySQL INSERT Statements?

在 MySQL 語句中包含 PHP 變數

將 PHP 變數作為 VALUES 子句的一部分插入內容表中可能會出現問題。讓我們解決這個問題並提供正確的方法。

使用準備好的語句

確保正確處理 MySQL 語句中的 PHP 變數至關重要。主要規則是使用準備好的語句。將 PHP 變數替換為 SQL語句中的佔位符,然後按照以下步驟操作:

  1. 準備更新的查詢
  2. 變數綁定到它們的對應的佔位符
  3. 執行準備好的語句

實現準備好的語句

使用MySQLi:

<?php
$type = 'testing';
$reporter = "John";
$description = "whatever";

$sql = "INSERT INTO contents (type, reporter, description) VALUES ('$type', ?, ?)";
$mysqli->execute_query($sql, [$reporter, $description]);
?>

使用PDO:

<?php
$type = 'testing';
$reporter = "John";
$description = "whatever";

$sql = "INSERT INTO contents (type, reporter, description) VALUES ('$type', ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$reporter, $description]);
?>

白名單過濾識別碼

對於關鍵字或識別碼(對於關鍵字或識別碼(資料庫、表格或欄位名稱)等查詢部分,請使用白名單篩選。這涉及將 PHP 變數與預先定義的允許值清單進行明確比較。如果變數與允許的值匹配,則可以安全地包含在查詢中。否則,拋出無效輸入的異常。

結論

遵循這些準則可確保安全且有效率地處理 MySQL 語句中的 PHP 變數。對錶示資料文字的變數使用準備好的語句並對識別碼使用白名單過濾可以保證資料完整性並防止注入攻擊。

以上是如何在 MySQL INSERT 語句中安全地包含 PHP 變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn