Przygotowane zapytania
Założenie: Pokażemy, jak używać przygotowanych zapytań w PHP, aby zapobiec atakom SQL Injection.
Krok po kroku:
- Połączenie z bazą danych: Ustanawiamy połączenie z bazą danych. Użyjmy PDO (PHP Data Objects) dla lepszego bezpieczeństwa.
- Przygotowanie zapytania: Tworzymy przygotowane zapytanie SQL, używając placeholderów (np. `?`).
- Wykonanie zapytania: Podajemy wartości do placeholderów i wykonujemy zapytanie.
- Pobranie wyników: Pobieramy wyniki zapytania.
$pdo = new PDO('mysql:host=localhost;dbname=moja_baza', 'użytkownik', 'hasło');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Ten kod tworzy obiekt PDO, łącząc się z bazą danych “moja_baza” z podanymi danymi logowania. PDO::ATTR_ERRMODE
ustawia tryb raportowania błędów.
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$pdo->prepare()
przygotowuje zapytanie SQL. Znak `?` jest placeholderem dla wartości, które zostaną dodane później.
$username = 'janek';
$stmt->execute([$username]);
$stmt->execute()
wykonuje przygotowane zapytanie, bezpiecznie wstawiając wartość zmiennej $username
.
$user = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($user);
$stmt->fetch(PDO::FETCH_ASSOC)
pobiera wynik jako tablicę asocjacyjną.
Ten przykład pokazuje podstawy używania przygotowanych zapytań w PHP. Pamiętaj, że zawsze należy unikać bezpośredniego wstawiania danych użytkownika do zapytań SQL, aby zapobiec atakom SQL Injection. Zachęcamy do dalszego zgłębiania tematu bezpieczeństwa w PHP!