Jak sprawdzić czy 4 ostatnie litery ciągu nie mają określonych znaków

0

Mam taki pytanie czy jest jakaś funkcja, która sprawdza czy 5 ostatnich liter ciągu nie mają w sobie znaków takich jak " and " czy " or " ?

0

Bo mam sobie formularz, i tam są pola tekstowe do wypełnienia oczywiście można wypełnić wszystkie, a można żadnego nie wypełniać i teraz jak ktoś wpisze w dane pole jaką wartość to w zapytaniu tworzy się wartość

$zapytanie .= " pole1 < wartosc"
$zapytanie .= " and pole2 < wartosc"

I teraz przykładowo jak użytkownik nie będzie wypełniał pola 1 to zmienna zapytanie będzie miała taką wartość select pole from tabela where and pole2 > wartosc i teraz mi chodzi o usunięcie tych zbędnych and i or.

1

Korzystaj z PDO i prepared statements. Teraz tylko prosisz się o SQL injection. Dlaczego 5 ostatnich liter? a jak ktoś CI poda 5 OR 10; SELECT * FROM users jak parametr. Poszerzaj horyzont, gdy spotykasz się z jakimś problemem.

0

Czyli problem X/Y: powinieneś wykorzystać odpowiedni query builder, a nie ręcznie składać zapytania.

3

Jeśli nie korzystasz z Query Builder w Laravel to jakbyś rezygnował z ochrony przed SQL Injection.
Popatrz w dokumentacje:
https://laravel.com/docs/5.5/queries#selects
Możesz sorbie zrobić coś takiego:

$query = DB::table('users')->select('name');
if(Input::has('nextFilter')){
     $query->addSelect('nextFilter');
}
$result = $query->get();

1 użytkowników online, w tym zalogowanych: 0, gości: 1