proudmore
@proudmore

Есть ли способы удобно обработать несколько десятков вариантов формирования sql запроса?

Есть входящие параметры, от 1 до 6. В зависимости от комбинации и наличия этих параметров нужно формировать собственный sql запрос.
Есть ли способ сделать это, не прибегаю к огромному количеству конструкций if?
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
угу, а в SQL есть WHERE IN
Ответ написан
Комментировать
@lubezniy
switch, array_search, оператор ? - выбирайте. Это навскидку.
Ответ написан
Комментировать
@MadridianFox
Web-программист, многостаночник
В простейшем случае сформировать условие из набора параметров можно вот так:
$params = [
    'param1'=>'value 1',
    'param2'=>'value 2'
];
$where_str="";
if(!empty($params)){
    $where = [];
    foreach($params as $param=>$value){
        $where[]="$param = '$value'";
    }
    $where_str = " WHERE ".join(" AND ", $where);
}
$sql = "select * from table".$where_str;

Этот код довольно условный - тут нет защиты от sql инъекций, он не привязан к расширению для работы с БД. Но в целом так работает большинство генераторов запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы