2016-11-06 86 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); 
相關問題