Bezpieczne zapytania

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

Krok po kroku:

  1. Połączenie z bazą danych:
  2. 
    $servername = "localhost";
    $username = "user";
    $password = "password";
    $dbname = "myDB";
    
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
    }
    				

    Ten kod łączy się z bazą danych MySQL. Pamiętaj o zamianie placeholderów na swoje dane.

  3. Przygotowanie zapytania:
  4. 
    $stmt = $conn->prepare("SELECT * FROM Users WHERE username = ?");
    				

    Tworzymy przygotowane zapytanie. Znak zapytania (?) jest placeholderem dla wartości, którą dodamy później.

  5. Wiązanie parametrów:
  6. 
    $username = "testuser"; // Wartość pochodząca z formularza np. $_POST['username']
    $stmt->bind_param("s", $username); // "s" oznacza string
    				

    Wiążemy zmienną `$username` z placeholderem w zapytaniu. “s” określa typ danych (string).

  7. Wykonanie zapytania:
  8. 
    $stmt->execute();
    $result = $stmt->get_result();
    				

    Wykonujemy przygotowane zapytanie i pobieramy wynik.

  9. Pobieranie wyników:
  10. 
    while($row = $result->fetch_assoc()) {
      echo "Username: " . $row["username"]. "
    "; }

    Pętla przechodzi przez wyniki i wyświetla je.

  11. Zamknięcie połączenia:
  12. 
    $stmt->close();
    $conn->close();
    				

    Zamykamy przygotowane zapytanie i połączenie z bazą danych.

Ten przykład pokazuje podstawy bezpiecznego wykonywania zapytań do bazy danych MySQL za pomocą przygotowanych zapytań. Pamiętaj, że zawsze należy walidować dane wejściowe od użytkownika przed ich użyciem w zapytaniach.

Dodaj komentarz 0

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