將 PHP 變數作為 VALUES 子句的一部分插入內容表中可能會出現問題。讓我們解決這個問題並提供正確的方法。
確保正確處理 MySQL 語句中的 PHP 變數至關重要。主要規則是使用準備好的語句。將 PHP 變數替換為 SQL語句中的佔位符,然後按照以下步驟操作:
使用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中文網其他相關文章!