Praca z PDO
Używaj PHP Data Objects (PDO) do pracy z bazami danych
Praca z PDO to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 6 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 PDO
Praca z PDO
Witamy w kolejnej lekcji! W tej lekcji poznają Państwo używanie PDO (PHP Data Objects) do interakcji z bazą danych. PDO to elastyczny i bezpieczny sposób łączenia się z bazami danych oraz pracy z nimi. Przejdźmy do szczegółów!

Czym jest PDO?
Czym jest PDO?
PDO (PHP Data Objects) to warstwa dostępu do bazy danych, która zapewnia jednolity interfejs do pracy z różnymi systemami baz danych. Obsługuje różne bazy danych, takie jak MySQL, PostgreSQL, SQLite i inne.
Najważniejsze funkcje:
- Niezależność od bazy danych (obsługa wielu typów baz danych).
- Wbudowana obsługa zapytań przygotowanych.
- Zaawansowane opcje obsługi błędów.
Wskazówka: PDO to doskonały wybór do tworzenia bezpiecznych i skalowalnych aplikacji internetowych.
Łączenie z bazą danych za pomocą PDO
Łączenie z bazą danych za pomocą PDO
Aby połączyć się z bazą danych za pomocą PDO, potrzebne są:
- Nazwa źródła danych (DSN), zawierająca typ, host i nazwę bazy danych.
- Prawidłowa nazwa użytkownika i hasło.
Przykład:
Wskazówka: W przypadku poufnych danych uwierzytelniających należy używać zmiennych środowiskowych lub plików konfiguracyjnych.
<?php
$dsn = "mysql:host=localhost;dbname=testdb";
$username = "root";
$password = "";
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully!";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Wykonywanie zapytań
Wykonywanie zapytań
PDO udostępnia dwie główne metody wykonywania zapytań:
exec(): Do instrukcji, które nie zwracają wyników (np.INSERT,UPDATE).query(): Do instrukcji, które zwracają wyniki (np.SELECT).
Przykład:
<?php
// Insert a record
$pdo->exec("INSERT INTO users (name, email) VALUES ('Alice', 'alice@mail.com')");
// Retrieve records
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
}
?>
Używanie zapytań przygotowanych
Używanie zapytań przygotowanych
Zapytania przygotowane są niezbędne do bezpiecznej i wydajnej interakcji z bazą danych. Przykład:
Wskazówka: Należy używać symboli zastępczych (:email), aby zapobiegać SQL injection.
<?php
$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->execute(["email" => "alice@mail.com"]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
echo "Name: " . $user["name"];
?>
Obsługa błędów w PDO
Obsługa błędów w PDO
PDO obsługuje trzy tryby obsługi błędów:
ERRMODE_SILENT: Błędy należy sprawdzać ręcznie.ERRMODE_WARNING: Błędy powodują ostrzeżenia PHP.ERRMODE_EXCEPTION: Błędy powodują zgłoszenie wyjątków (zalecane).
Przykład:
<?php
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$pdo->exec("INVALID SQL STATEMENT");
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
Pobieranie danych
Pobieranie danych
PDO udostępnia kilka metod pobierania danych:
fetch(): Pobiera jeden wiersz.fetchAll(): Pobiera wszystkie wiersze.fetchColumn(): Pobiera wartość jednej kolumny.
Przykład:
<?php
$stmt = $pdo->query("SELECT name FROM users");
while ($name = $stmt->fetchColumn()) {
echo "User: " . $name . "<br>";
}
?>Zarządzanie transakcjami
Zarządzanie transakcjami
Transakcji należy używać do wykonywania wielu zapytań jako jednej jednostki. Przykład:
Wskazówka: Transakcji należy używać w celu zapewnienia integralności danych.
<?php
try {
$pdo->beginTransaction();
$pdo->exec("INSERT INTO users (name, email) VALUES ('Bob', 'bob@mail.com')");
$pdo->exec("INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@mail.com')");
$pdo->commit();
echo "Transaction successful!";
} catch (PDOException $e) {
$pdo->rollBack();
echo "Transaction failed: " . $e->getMessage();
}
?>
Świetnie!
Świetnie!
Gratulacje! Opanowali Państwo używanie PDO do bezpiecznej i wydajnej interakcji z bazą danych, w tym łączenie się z bazą, wykonywanie zapytań i zarządzanie transakcjami. W następnej lekcji poznają Państwo zaawansowane techniki tworzenia zapytań SQL z użyciem PDO. Programujmy dalej!

Często zadawane pytania
Czy lekcja „Praca z PDO” jest bezpłatna?
Tak — pełny tekst „Praca z PDO” 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 „Praca z PDO”?
Używaj PHP Data Objects (PDO) do pracy z bazami danych Ć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 6 z 6.
Ile czasu zajmuje lekcja „Praca z PDO”?
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