sql >> データベース >  >> RDS >> Mysql

jqueryから渡された変数からPDOの配列を作成します

    問題が正しい方法で発生したかどうかはわかりませんが、試すことができます(間違っている場合はコメントしてください)。

    thiseフラグメントを置き換えます:

    $stmt = $dbh->prepare("SELECT COUNT(guid) FROM full_db2 WHERE {$firstpara} = :{$firstpara} AND {$secondpara} = :{$secondpara} AND {$thirdpara} = :{$thirdpara}");
    
    $stmt->execute($data);
    

    これで:

    $validKeys = array('gender','maritalstatus', 'age');
        $sql = 'SELECT COUNT(guid) FROM full_db2';
        $any_condition = false;
        foreach($_GET as $key=>$val) {
           if (!empty($val) && in_array($key,$validKeys)) {
             if ($any_condition) {
               $sql .= ' AND '.$key.' = :'.$key;
             } else {
               $sql .= ' WHERE '.$key.' = :'.$key;
               $any_condition = true;
             }
           }
        }
    
        $stmt = $dbh->prepare($sql);
    
        foreach($_GET as $key=>$val) {
    
       if (!empty($val)  && in_array($key,$validKeys)) {
         $stmt ->bindValue(':'.$key, $val, PDO::PARAM_STR);
       }
    }
    
    $stmt->execute();
    

    ajaxリクエストについては、こちらをお読みください:jQueryを使用してフォームを送信する

    ajaxリクエストの行形式を次のように変更します:data: {firstpara: para1, secondpara: para2 ,thirdpara: para3}

    to data: {age: para1, maritalstatus: para2 ,gender: para3},




    1. DATETIME形式の値に1日を追加

    2. MySQL group byを使用して、その日にレコードがないときに空の値を埋める方法

    3. PostgreSQLのクラウドデータベースオプションの比較

    4. SQLServerでユーザー定義タイプを変更する