Поэтому я знаю, что если я построю динамическую строку SQL, я могу сделать что-то вроде следующего
$SQL = "SELECT * FROM " . $table; $first = 1; foreach($items as $key => $val) { if($first) $SQL .= " WHERE "; else $SQL .= " AND "; $SQL .= $key . " LIKE " . $VAL; $first = 0; }
а затем вызовите DB::Query($SQL);
Но это не автоматически защищает ввод пользователя.
Если я использовал Builder Builder в laravel, пользовательский ввод будет автоматически очищен, но я не знаю, как я могу использовать построитель запросов для создания запроса с динамическим числом предложений where во время выполнения. Это возможно?
$query = $tableModel->newQuery(); foreach($items as $key => $val) { $query->where($key, "LIKE", '%'.$val.'%'); }
foreach( $items as $key => $value ) { $query->where( $key, '=', $value ); }
Что-то вроде того, что тебе нужно?
EDIT: Похоже, Марк победил меня.