猿问

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

我有一个包含三个选项的复选框的表单,即'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"> Other

SELECT 语句基本上是这样的:


SELECT field1,field2,field3

FROM X 

WHERE field1 IN('A','B','C') 

或者它可能是


SELECT field1,field2,field3

FROM X

WHERE field1 ='A' -- Basically this could be a single value.


炎炎设计
浏览 118回答 2
2回答

精慕HU

我不太明白你实际上想在那里做什么,但正如评论已经说过的那样,不要将用户输入直接放入 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

有只小跳蛙

尝试这个:$sql&nbsp;=&nbsp;"SELECT&nbsp;*&nbsp;FROM&nbsp;table&nbsp;WHERE&nbsp;field&nbsp;IN&nbsp;('".implode("','",&nbsp;$_POST['gender'])."')";这是您构建查询的方式,但强烈建议您在构建查询之前清理 $_POST 数组的内容,因为您可能容易受到 SQL 注入的攻击。
随时随地看视频慕课网APP
我要回答