2016-11-06 6 views
-3

どのようにすればselect * from users where gender = ?;となり、性別は 'f'か 'm'のどちらかまたはどちらかと同じになりますか?ユーザ入力に応じた動的クエリsql

私は女性であるすべてのユーザーのいずれか ある
  • すべてのユーザーバック

    1. 男性であるすべてのユーザーを取得することができるだろう動的SELECT文を作成しようとしています

    私は最初の2つではできますが、3つではありません。 mysqlで可能でしょうか?私がっ

  • +0

    が可能な値が何であるか別名ジェンダー列のデータ型は何ですか。また、ユーザーが両方の性別であるとみなされる場合、その価値はどのように等しくなりますか? –

    +1

    ジェンダー列は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); 
    
    関連する問題