0Pricing
PHP Academy · Lekcja

Łączenie z MySQL za pomocą PDO

Utwórz połączenie PDO z użyciem DSN, nazwy użytkownika i hasła

Łączenie z MySQL za pomocą PDO to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 1 z 4. 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 4 lekcji w sumie.

Czym jest PDO?

PDO (PHP Data Objects) to warstwa abstrakcji dostępu do baz danych. Jedno API działa z MySQL, PostgreSQL, SQLite i innymi bazami — wystarczy zmienić DSN.

DSN

Ciąg DSN (Data Source Name) identyfikuje sterownik, host, port i nazwę bazy danych.

<?php
$dsn = "mysql:host=127.0.0.1;port=3306;dbname=myapp;charset=utf8mb4";

Tworzenie instancji PDO

Przekaż DSN, nazwę użytkownika i hasło do konstruktora PDO. Użyj bloku try/catch, aby obsłużyć błędy połączenia.

<?php
try {
    $pdo = new PDO(
        "mysql:host=127.0.0.1;dbname=myapp;charset=utf8mb4",
        "db_user",
        "db_pass"
    );
} catch (PDOException $e) {
    die("Connection failed: ".$e->getMessage());
}

Tryb obsługi błędów

Ustaw tryb obsługi błędów tak, aby zgłaszał wyjątki — dzięki temu błędy nigdy nie zostaną pominięte bez ostrzeżenia.

<?php
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Domyślny tryb pobierania

Skonfiguruj domyślny sposób pobierania danych — najwygodniejsze są tablice asocjacyjne.

<?php
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

Pełna konfiguracja połączenia

Najlepsza praktyka: utwórz PDO tylko raz, ustawiając wszystkie atrybuty, a następnie współdziel tę instancję.

<?php
function createPDO(): PDO {
    return new PDO(
        "mysql:host=127.0.0.1;dbname=myapp;charset=utf8mb4",
        "root", "secret",
        [
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES   => false,
        ]
    );
}

Emulowane zapytania przygotowane

Ustawienie ATTR_EMULATE_PREPARES na false powoduje używanie rzeczywistych zapytań przygotowanych po stronie serwera — jest to bezpieczniejsze i wydajniejsze.

charset=utf8mb4

Zawsze określaj charset=utf8mb4 w DSN. Zapewnia to obsługę pełnego zakresu Unicode, w tym emoji. Nigdy nie używaj starego aliasu utf8.

Wykonywanie prostego zapytania

Używaj query() tylko w przypadku instrukcji, które nie zawierają danych wejściowych użytkownika.

<?php
$stmt = $pdo->query("SELECT COUNT(*) as total FROM users");
$row  = $stmt->fetch();
echo $row["total"];

exec() dla instrukcji innych niż SELECT

exec() wykonuje instrukcję, która nie zwraca wyników, i zwraca liczbę zmodyfikowanych wierszy.

<?php
$count = $pdo->exec("DELETE FROM sessions WHERE expires_at < NOW()");
echo "Deleted $count expired sessions";

Połączenia trwałe

PDO obsługuje połączenia trwałe za pomocą PDO::ATTR_PERSISTENT => true. W środowiskach PHP-FPM zazwyczaj preferowana jest pula połączeń.

Podsumowanie

Twórz PDO z użyciem DSN, ustaw ERRMODE_EXCEPTION i FETCH_ASSOC oraz wyłącz emulowane zapytania przygotowane. Nigdy nie wywołuj query() z danymi dostarczonymi przez użytkownika — używaj zapytań przygotowanych.

Szybkie sprawdzenie

Który atrybut sprawia, że PDO zgłasza wyjątki w przypadku błędów?

Często zadawane pytania

Czy lekcja „Łączenie z MySQL za pomocą PDO” jest bezpłatna?

Tak — pełny tekst „Łączenie z MySQL za pomocą 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 4 lekcji w sumie.

Co nauczysz się w „Łączenie z MySQL za pomocą PDO”?

Utwórz połączenie PDO z użyciem DSN, nazwy użytkownika i hasła Ć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 1 z 4.

Ile czasu zajmuje lekcja „Łączenie z MySQL za pomocą 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. Łączenie z MySQL za pomocą PDO
  2. Instrukcje przygotowane i bindowanie parametrów
  3. Pobieranie wyników za pomocą PDO
  4. Transakcje z PDO
← Powrót do PHP Academy