首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Select/Option值进入SQL

Select/Option值进入SQL
EN

Stack Overflow用户
提问于 2013-01-24 00:45:55
回答 3查看 7.4K关注 0票数 0

我正在尝试完成的是拥有一个带有预定义选项的选择表单元素

代码语言:javascript
复制
<select name="select1">
   <option value="value1">Value 1</option>
   <option value="value2">Value 2</option>
   <option value="value3">Value 3</option>
</select>

我的sql如下所示

代码语言:javascript
复制
$OptionValue = $_POST['select1'];

这就是我从表单中获取所选选项的值并将其放入php变量中进行查询的方式吗?

EN

回答 3

Stack Overflow用户

发布于 2013-01-24 00:49:22

您需要确保过滤用户输入以防止sql注入。单凭这一点是非常不安全的。

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

参见here

但从本质上讲,你做得很对。

编辑:

在客户端,我可以很容易地将其更改为:

代码语言:javascript
复制
<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
EN

Stack Overflow用户

发布于 2013-01-24 00:51:29

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

票数 0
EN

Stack Overflow用户

发布于 2013-01-24 22:37:49

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14484875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档