在mySQL查询中包含php变量
>准备好的语句提供了一种安全有效的方法来包括PHP变量在查询中。以下是这样做的方法:
$type = 'testing'; $reporter = "John O'Hara"; $sql = "INSERT INTO contents (type, reporter, description) VALUES (?, ?, ?)"; $stmt = $mysqli->prepare($sql); $stmt->bind_param("sss", $type, $reporter, $description); $stmt->execute();
>准备查询:
用占位符字符替换php变量(例如?)。 🎜>将php变量与占位符相关。$type = 'testing'; $reporter = "John O'Hara"; $sql = "INSERT INTO contents (type, reporter, description) VALUES (?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$type, $reporter, $description]);
>执行查询:使用绑定变量运行准备的语句。
解决方案2:使用白色列表过滤
$orderby = $_GET['orderby'] ?: "name"; // Set default $allowed = ["name", "price", "qty"]; // White list if (!in_array($orderby, $allowed)) { throw new InvalidArgumentException("Invalid ORDER BY field name"); }
以上是如何在 MySQL 查询中安全地包含 PHP 变量?的详细内容。更多信息请关注PHP中文网其他相关文章!