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

mysql検索文字列を動的に作成しますか?

    これは簡単な例です。 JRequest ::getVarが返すデータの種類(常に文字列、または混合型?)はわかりませんが、これで始めることができます。 foreachループ内で適用されるエスケープ方法を必ず使用してください:

    if ($post) {
        $criteria = array();
        //get all search variables
        $criteria['type'] = JRequest::getVar('type');
        $criteria['classifications'] = JRequest::getVar('classifications', array(0), 'post', 'array');
        $criteria['rating'] = JRequest::getVar('rating');
    
        //if there are some criteria, make an array of fieldName=>Value maps
        if(!empty($criteria)) {
            $where = array();
            foreach($criteria as $k => $v) {
                //IMPORTANT!!
                //$v is the value of the field, needs to be quoted correctly!!
                $where[] = "$k = '$v'";
            }
        }
        //create search string
        $query =  "SELECT * FROM #__db_clients";
    
        if($where) {
            $query .= " where " . join(' AND ', $where);
        }   
    } else {    
        echo 'There has been an error, please try again.';
    };
    



    1. MySQLにJSONデータを保存する方法

    2. Laravelの画面にSQLクエリをダンプする

    3. jqGridAct奇妙な挿入および更新後のデータの再読み込み

    4. 左結合、MySQLを使用した可変および自動インクリメントでクエリを更新