为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用复选框中的多个值构建 WHERE 条件?

如何使用复选框中的多个值构建 WHERE 条件?

PHP
炎炎设计 2021-11-13 16:16:15
我有一个包含三个选项的复选框的表单,即'A','B'和'C'. 我需要构建一个SELECT语句来从数据库表 X 中获取数据,该WHERE子句可以是WHERE field1 IN ('A','B','C')或它可以是任何一个值,即WHERE field1 = 'A'等。我有点不知道如何继续SELECT声明。如果需要更多详细信息来理解问题,请告诉我。表单中我的复选框的代码:<input type="checkbox" name="gender[]" value="Male" id="Male"> Male<input type="checkbox" name="gender[]" value="Female" id="Female"> Female<input type="checkbox" name="gender[]" value="Other" id="Other"> OtherSELECT 语句基本上是这样的:SELECT field1,field2,field3FROM X WHERE field1 IN('A','B','C') 或者它可能是SELECT field1,field2,field3FROM XWHERE field1 ='A' -- Basically this could be a single value.
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

我不太明白你实际上想在那里做什么,但正如评论已经说过的那样,不要将用户输入直接放入 mysql 查询中。据我了解,这可能会有所帮助:


如果您不知道如何与 pdo 建立连接:https : //www.php.net/manual/en/pdo.connections.php


$stmt = $pdo->prepare(SELECT field1,field2,field3 FROM X WHERE field1 = :a OR field1 = :b OR field1 = :c);

$stmt->execute(['a'=> $aVariable,'b'=> $bVariable,'c'=>$cVariable]); //Here you bind the data from your form to the parameters of the select query.

$row = $stmt->fetch(); //This is the result of the mysql query with the data of the table



查看完整回答
反对 回复 2021-11-13
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

尝试这个:

$sql = "SELECT * FROM table WHERE field IN ('".implode("','", $_POST['gender'])."')";

这是您构建查询的方式,但强烈建议您在构建查询之前清理 $_POST 数组的内容,因为您可能容易受到 SQL 注入的攻击。


查看完整回答
反对 回复 2021-11-13
  • 2 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信