【问题标题】:Select/Option Value into SQL选择/选项值到 SQL
【发布时间】:2026-02-08 14:00:01
【问题描述】:

我想要完成的是拥有一个带有预定义选项的选择表单元素

<select name="select1">
   <option value="value1">Value 1</option>
   <option value="value2">Value 2</option>
   <option value="value3">Value 3</option>
</select>

我的sql如下

$OptionValue = $_POST['select1'];

我应该如何从表单中获取所选选项的值并将其放入要查询的 php 变量中?

【问题讨论】:

  • 这就是您所需要的。假设在表单中选择了Value 2,您将在$_POST['select1'] 中获得value2
  • $OptionValue = $_POST['select1'];不是 Mysql 它是 PHP。取决于您的表单是如何设置的,以及您希望如何处理这取决于您是否想要使用 PHP 的 POST 或 GET
  • 如果我想要用户选择的选项,我会这样写吗?

标签: php html mysql sql forms


【解决方案1】:

您需要确保过滤用户输入以防止 sql 注入。仅此一点就很不安全。

确保您使用的是 PDO 或 MySQLi。如果不使用准备好的语句,您的用户输入需要转义。

here

不过,基本上你是对的。

编辑:

从客户端我可以轻松地将其更改为:

<select name="select1">
   <option value="value1">Value 1</option>
   <option value="';DROP TABLE users">Value 2</option>
   <option value="value3">Value 3</option>
</select>

或类似的......现在如果你没有逃避你的输入,你就完蛋了。

【讨论】:

    【解决方案2】:

    在执行查询之前使用$optionValue = mysqli_real_escape_string ($connection , $_POST['select1']) 以防止大部分 SQL 注入。

    【讨论】:

      【解决方案3】:

      第一步是防止使用准备好的语句进行 SQL 注入。示例:Prepared Statements

      使用它来将您选择的选项放入查询中: $mySelectedOption = $_POST['select1']; $query = "SELECT column_name FROM table_name WHERE column_name = '{$mySelectedOption}'";

      【讨论】: