2016-11-06 106 views
-3

我该如何select * from users where gender = ?;并且性别必须等于'f'或'm'或者其中之一?根据用户输入的动态查询sql

我想创建一个动态的select语句我会在哪里能找回

  1. 是男性
  2. 是女性
  3. 是要么
  4. 所有用户的所有用户的所有用户

我能够做到这一点与前两个,但不是第三个。它可能与MySQL?

+0

什么是性别列又名的数据类型有哪些可能的值。此外,当用户被视为两个性别时,这个值是否相等? –

+1

gender列是CHAR(1),它只能是'f'或'm'。它不可能是两个。 –

+0

根据输入在php中动态创建查询 –

回答

1

我会假设你使用PDO and prepared statements

$pdo = new PDO($dsn, $user, $pass, $options); 

$gender_defined = $gender == 'f' || $gender == 'm'; 

if ($gender_defined) { 
    $query = $pdo->prepare("select * from table where gender = ?"); 
    $query->bindParam(1, $gender, PDO::PARAM_STR); 
    $query->execute(); 
} else { 
    $query = $pdo->query("select * from table where gender = 'f' or gender = 'm'"); 
} 

$result = $query->fetchAll(PDO::FETCH_ASSOC);