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

时间:2019-08-04 18:35:05

标签: php mysql

我有一个带有复选框的表格,该复选框带有三个选项,即'A''B''C'。我需要构建一个SELECT语句来从数据库表X中获取数据,为此,WHERE子句可以是WHERE field1 IN ('A','B','C')或它可以是任何值,即{{1} }等。

对于如何继续执行WHERE field1 = 'A'语句,我有些困惑。

请让我知道是否需要更多详细信息以了解问题。

我的复选框的代码,格式为:

SELECT

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 field1,field2,field3
FROM X 
WHERE field1 IN('A','B','C') 

2 个答案:

答案 0 :(得分:-1)

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

答案 1 :(得分:-3)

尝试一下:

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

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