Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择/选择SQL中的值_Php_Html_Mysql_Sql_Forms - Fatal编程技术网

Php 选择/选择SQL中的值

Php 选择/选择SQL中的值,php,html,mysql,sql,forms,Php,Html,Mysql,Sql,Forms,我正在尝试实现的是一个带有预定义选项的select表单元素 <select name="select1"> <option value="value1">Value 1</option> <option value="value2">Value 2</option> <option value="value3">Value 3</option> </select> 这就是我应该如何

我正在尝试实现的是一个带有预定义选项的select表单元素

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

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

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

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

基本上你是对的

编辑:

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

<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
价值2
价值3

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

在执行查询以阻止大部分SQL注入之前,使用
$optionValue=mysqli\u real\u escape\u string($connection,$\u POST['select1'])

第一步是使用准备好的语句阻止SQL注入。例如:

使用此选项将所选选项放入查询:

$mySelectedOption=$\u POST['select1'];
$query=“从表_name中选择列_name,其中列_name='{$mySelectedOption}'”;

这就是您所需要的全部。假设表单中选择了
value2
,您将在
$\u POST['select1']
$OptionValue=$\u POST['select1']中获得
value2
;不是Mysql,而是PHP。这取决于你的表单是如何设置的,你希望如何处理它,这取决于你是否想要一篇文章,或者你是否想获得PHPIs。如果我想知道用户选择了什么选项,我将如何编写它?
<select name="select1">
   <option value="value1">Value 1</option>
   <option value="';DROP TABLE users">Value 2</option>
   <option value="value3">Value 3</option>
</select>