0Pricing
PHP Academy · Lekcja

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!

Praca z PDO — ilustracja 1

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!

Praca z PDO — ilustracja 10

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

  1. Wprowadzenie do baz danych
  2. Łączenie z bazą danych MySQL
  3. Zarządzanie tabelami
  4. Wykonywanie operacji CRUD
  5. Instrukcje przygotowane
  6. Praca z PDO
← Powrót do PHP Academy