Zadanie 3
- Dział: Połączenie PHP z bazą danych
- Temat: Bezpieczne zapytanie z PDO
Napisz fragment kodu PHP, który pobiera z bazy MySQL użytkownika o podanym adresie e-mail, zabezpieczając zapytanie przed SQL Injection.
PHP
<?php
$pdo = new PDO("mysql:host=localhost;dbname=szkola;charset=utf8mb4", "user", "pass", [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
$stmt = $pdo->prepare("SELECT id, email FROM uzytkownicy WHERE email = :email");
$stmt->execute([":email" => $_POST["email"]]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);Wskazówka
Nie wklejaj danych do zapytania — użyj zapytania przygotowanego z parametrem.
Rozwiązanie krok po kroku
- 1Łączymy się z bazą przez PDO i włączamy raportowanie błędów wyjątkami.
- 2Przygotowujemy zapytanie z parametrem `:email` — dane nigdy nie trafiają do treści SQL.
- 3Wykonujemy zapytanie, przekazując wartość osobno.
- 4Odbieramy jeden wiersz metodą `fetch`.