Czy wyszukiwanie działa w pełni ?

0

Pisząc frazę:

$wynik = mysqli_query($link, "SELECT tytul FROM Zamowienia where tytul like %" . $_GET['tytul'] . "%");

czy będzie działać wyszukiwarka po wpisaniu liter ? Czy można tą frazę napisać w lepszy sposób, aby wyszukiwała książki po podaniu pojedyńczej litery ? Czy ustawienia cudzysłowów nie blokują wyszukiwania po literach ?
Dziękuję za porady na przykładach.

0

Wyplutym stringiem będzie ciąg znaków:
SELECT tytul FROM Zamowienia where tytul like %JAKIŚ_TYTUŁ%

więc nie ma tu żadnych cudzysłowów.

Pytanie czy szukanie książki po jednej literze to dobry pomysł? Nie lepiej ustawić jakieś minimum znaków np. 3?

3

@adamon ćwiczenie dla ciebie: zastanów się co się stanie jak podam w parametrze "tytuł" np.: dupa% union select password from users # (zakładając że poprawisz sobie te cudzysłowy ofc)

0

Generalnie kiedy stosujemy " " , a kiedy ' ' ?

3

@adamon: hasła na dziś: Prepared Statement, SQL Injection :)

W innych językach to raczej standard, że w zapytaniach bez prepared statement żadnych rzeczy, które może dodać użytkownik (formularze, parametry zapytania, body itd) nie ruszasz nawet kijem. W przypadku PHP nie mam pewności, bo to PHP, ale przypuśćmy że też.

2

O SQL Injection OP ma wspominane co 2 wątek od pół roku co najmniej. Np. W sprawie wstawiania danych do tabeli w bazie danych.
Żeby ogarnąć prepared statemants to najpierw podstawy podstaw są potrzebne.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.