首页 > 数据库 > mysql教程 > 如何在 MySQL 查询中安全地包含 PHP 变量?

如何在 MySQL 查询中安全地包含 PHP 变量?

Susan Sarandon
发布: 2025-01-25 16:47:15
原创
604 人浏览过

在mySQL查询中包含php变量

How Can I Safely Include PHP Variables in MySQL Queries?

  1. 可能会导致错误,尤其是当在值子句中插入值时。
  2. >解决方案1:使用准备好的语句

>准备好的语句提供了一种安全有效的方法来包括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]);
登录后复制

>执行查询:使用绑定变量运行准备的语句。​​

  1. >
  2. 示例使用mysqli:
  3. >>使用PDO:

解决方案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");
}
登录后复制
查询代表标识符(例如表格或字段名称)的查询零件,使用白色列表过滤以确保它们有效。这涉及:>创建一个白色列表:指定允许值的列表。 >检查变量:验证PHP变量匹配该PHP变量允许的值。格式标识符:>根据数据库语法格式标识符(例如,mysql的backticks)。订购:

以上是如何在 MySQL 查询中安全地包含 PHP 变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板