选择/选择值到SQL中

时间:2013-01-23 16:45:55

标签: php html mysql sql forms

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

<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变量中?

3 个答案:

答案 0 :(得分: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>

或类似的...现在,如果你没有逃脱输入,你就会被搞砸。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

第一步是使用预准备语句阻止SQL注入。示例:Prepared Statements

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