Przygotowane zapytania

Założenie: Pokażemy, jak używać przygotowanych zapytań w PHP, aby zapobiec atakom SQL Injection.

Krok po kroku:

  1. Połączenie z bazą danych: Ustanawiamy połączenie z bazą danych. Użyjmy PDO (PHP Data Objects) dla lepszego bezpieczeństwa.
  2. 
    $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.

  3. Przygotowanie zapytania: Tworzymy przygotowane zapytanie SQL, używając placeholderów (np. `?`).
  4. 
    $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.

  5. Wykonanie zapytania: Podajemy wartości do placeholderów i wykonujemy zapytanie.
  6. 
    $username = 'janek';
    $stmt->execute([$username]);
    				

    $stmt->execute() wykonuje przygotowane zapytanie, bezpiecznie wstawiając wartość zmiennej $username.

  7. Pobranie wyników: Pobieramy wyniki zapytania.
  8. 
    $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!

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *