【问题标题】:How do I use variables in PHP/HTML in an SQL INSERT statement [closed]如何在 SQL INSERT 语句中使用 PHP/HTML 中的变量 [关闭]
【发布时间】:2016-09-08 15:12:54
【问题描述】:

我正在尝试让一个 html 页面运行一个使用 sql 将数据提交到表中的 php 文档。变量在 html 页面中(我认为,这不是我的项目的一部分),它运行 php 文档。除了这行 sql 之外,这些变量不在 php 中的任何位置。

我的代码在这里可能非常错误,我不完全确定该怎么做。我为价值观做什么?语法正确吗?如何将 HTML/PHP 中的变量导入 SQL INSERT 和 VALUES 语句?

对不起,我在这里有点菜鸟。

$sql = "INSERT INTO tablename (id, last_name, first_name, username, password, gender, age) VALUES ()";

【问题讨论】:

标签: php html mysql sql-server


【解决方案1】:

首先,您需要使用来自 html 表单的请求来获取数据(在此处阅读更多信息 http://www.w3schools.com/php/php_forms.asp)。您说 html 不是您项目的一部分,您至少知道要解析为 php 的值的名称吗?如果没有,您需要找出答案。

接下来,您需要通过 php 的 $_REQUEST 全局数组获取值,例如:如果值的名称为 'name',那么您将使用 $_REQUEST['name'] 获取它。

就将这些值插入查询而言,您可以直接将它们插入查询字符串,但我和其他人强烈建议您使用参数化来防止 sql 注入攻击:http://www.w3schools.com/sql/sql_injection.asp

希望对您有所帮助。

【讨论】:

  • 谢谢,这很有帮助。我们并不真正关心攻击,因为这将在封闭系统上工作。我真的不明白如何将“$_REQUEST”中的值放入查询中。我可能想多了。
  • 因此,您需要做的就是将请求数组中的值设置为 php 中的变量,然后将其放入查询中。因此,如果您想处理名称字段,您可以使用$name = $_REQUEST['name'] 之类的东西。然后您可以使用参数化来添加值:$sql = "INSERT INTO tablename (name) VALUES (:name)"; $db_object->preapre($sql); $db_object->bindParam("name", $name); 或者,如果您真的不认为会有安全问题,您可以直接将变量输入查询:$sql = "INSERT INTO tablename (name) VALUES ($name)";
  • 这正是我需要知道的,谢谢。安全性不是问题,因为该项目不会向公众开放。不过,还是感谢您提供的信息。
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多