Instrukcje przygotowane
Zabezpiecz zapytania do bazy danych za pomocą instrukcji przygotowanych
Instrukcje przygotowane to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 5 z 6. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 6 lekcji w sumie.
Przegląd zapytań przygotowanych
Zapytania przygotowane
Witamy w kolejnej lekcji! W tej lekcji poznają Państwo zapytania przygotowane oraz dowiedzą się, jak zwiększają one bezpieczeństwo i wydajność interakcji z bazą danych. Zacznijmy!

Czym są zapytania przygotowane?
Czym są zapytania przygotowane?
Zapytania przygotowane to funkcja systemów zarządzania bazami danych, która umożliwia bezpieczne i wydajne wykonywanie zapytań SQL. Oddzielają one kod SQL od danych, zapobiegając atakom SQL injection.
Przykład: Używanie symboli zastępczych (:name, :email) zamiast bezpośredniego umieszczania danych użytkownika w zapytaniu.
Dlaczego warto używać zapytań przygotowanych?
Dlaczego warto używać zapytań przygotowanych?
Zapytania przygotowane oferują kilka korzyści:
- Bezpieczeństwo: Zapobiegają SQL injection, odpowiednio przetwarzając dane wejściowe użytkownika.
- Wydajność: Umożliwiają ponowne użycie tej samej instrukcji z różnymi danymi, skracając czas analizowania zapytania.
- Łatwiejsze utrzymanie: Sprawiają, że kod jest łatwiejszy do odczytania i debugowania.
Najważniejsza informacja: Podczas pracy z danymi dostarczonymi przez użytkownika zawsze należy używać zapytań przygotowanych.
Tworzenie zapytania przygotowanego
Tworzenie zapytania przygotowanego
Aby utworzyć zapytanie przygotowane, należy wykonać następujące kroki:
- Należy napisać zapytanie SQL z symbolami zastępczymi.
- Należy przygotować zapytanie za pomocą połączenia z bazą danych.
- Należy przypisać wartości do symboli zastępczych.
- Należy wykonać instrukcję.
Przykład:
Wskazówka: Do łatwego przypisywania wartości należy używać tablic asocjacyjnych.
<?php
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute(["name" => "Alice", "email" => "alice@mail.com"]);
?>Przypisywanie wartości
Przypisywanie wartości
Do przypisywania wartości do symboli zastępczych należy używać metod bindParam() lub bindValue(). Przykład:
<?php
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->bindParam(":name", $name);
$stmt->bindParam(":email", $email);
$name = "Bob";
$email = "bob@mail.com";
$stmt->execute();
?>
Używanie zapytań przygotowanych dla zapytań SELECT
Używanie zapytań przygotowanych dla zapytań SELECT
Zapytania przygotowane działają ze wszystkimi typami zapytań SQL, w tym z SELECT. Przykład:
Wskazówka: Do pobierania wielu wierszy należy używać fetchAll().
<?php
$sql = "SELECT * FROM users WHERE name = :name";
$stmt = $pdo->prepare($sql);
$stmt->execute(["name" => "Alice"]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "Name: " . $result["name"] . ", Email: " . $result["email"];
?>
Ponowne używanie zapytań przygotowanych
Ponowne używanie zapytań przygotowanych
Zapytania przygotowane można ponownie wykorzystywać z różnymi wartościami, zwiększając wydajność. Przykład:
<?php
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$users = [
["name" => "Charlie", "email" => "charlie@mail.com"],
["name" => "Dave", "email" => "dave@mail.com"]
];
foreach ($users as $user) {
$stmt->execute($user);
}
echo "Multiple records inserted successfully!";
?>
Zapobieganie SQL injection
Zapobieganie SQL injection
Zapytania przygotowane zabezpieczają znaki specjalne w danych wejściowych użytkownika, zapobiegając atakom SQL injection. Przykład:
<?php
$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->execute(["email" => "' OR 1=1; --"]);
$result = $stmt->fetch();
if ($result) {
echo "User found.";
} else {
echo "No user found.";
}
?>
Świetnie!
Świetnie!
Gratulacje! Opanowali Państwo używanie zapytań przygotowanych w PHP do zabezpieczania interakcji z bazą danych. W następnej lekcji poznają Państwo zaawansowane techniki tworzenia zapytań z użyciem JOIN i agregacji. Programujmy dalej!

Często zadawane pytania
Czy lekcja „Instrukcje przygotowane” jest bezpłatna?
Tak — pełny tekst „Instrukcje przygotowane” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 6 lekcji w sumie.
Co nauczysz się w „Instrukcje przygotowane”?
Zabezpiecz zapytania do bazy danych za pomocą instrukcji przygotowanych Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć PHP Academy?
Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 5 z 6.
Ile czasu zajmuje lekcja „Instrukcje przygotowane”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?
Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wprowadzenie do baz danych
- Łączenie z bazą danych MySQL
- Zarządzanie tabelami
- Wykonywanie operacji CRUD
- Instrukcje przygotowane
- Praca z PDO