🢂Łączenie się z zew. bazą danych ‑ uniwersalna funkcja w PHP

Połączenie z zewnętrzną bazą danych jest częstą potrzebą funkcją. Ten artykuł przedstawia przykładową funkcję PHP, która umożliwia nawiązanie połączenia z bazą danych MySQL z wykorzystaniem PDO.

Nawiązywanie połączenia z zewnętrzną bazą danych jest częstą czynnością w wielu projektach programistycznych. W tym artykule prezentuję przykładową funkcję PHP, która umożliwia nawiązanie połączenia z bazą danych MySQL. Funkcja ta jest uniwersalna i może być wykorzystana w różnych projektach.

Opis działania polacz_z_zewnetrzna_baza()

Prezentowana funkcja polacz_z_zewnetrzna_baza() przyjmuje kilka parametrów:

  • $host: Nazwa hosta serwera bazy danych.
  • $db: Nazwa bazy danych.
  • $user: Nazwa użytkownika bazy danych.
  • $pass: Hasło użytkownika bazy danych.
  • $charset: Zestaw znaków używany w bazie danych (opcjonalnie).

Kod funkcji

Funkcja tworzy Data Source Name (DSN), czyli ciąg zawierający informacje potrzebne do połączenia z bazą danych. Następnie tworzy obiekt PDO z określonymi opcjami, w tym:

  • PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION: Włącza raportowanie błędów jako wyjątki.
  • PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC: Ustawia domyślny tryb pobierania danych jako asocjacyjny.
  • PDO::ATTR_EMULATE_PREPARES => false: Wyłącza emulowanie zapytań przygotowanych, co może poprawić wydajność.

Funkcja zwraca obiekt PDO, który może być używany do wykonywania zapytań i operacji na danych w bazie. W przypadku błędu połączenia funkcja rzuca wyjątek PDOException z odpowiednim komunikatem.

<?php
function polacz_z_zewnetrzna_baza() {
    // Definicja parametrów połączenia z bazą danych
    $host = 'nazwa_hosta';          // Host bazy danych
    $db = 'nazwa_bazy_danych';      // Nazwa bazy danych
    $user = 'nazwa_uzytkownika';    // Nazwa użytkownika bazy danych
    $pass = 'haslo';                // Hasło do bazy danych
    $charset = 'utf8mb4';           // Zestaw znaków używany w bazie danych

    // Tworzenie Data Source Name, czyli ciągu zawierającego informacje potrzebne do połączenia
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";

    // Ustawienie opcji dla połączenia PDO
    $options = [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,              // Włączenie raportowania błędów
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,         // Ustawienie domyślnego trybu pobierania danych jako asocjacyjny
        PDO::ATTR_EMULATE_PREPARES => false,                       // Wyłączenie emulowania zapytań przygotowanych
    ];

    try {
        // Próba nawiązania połączenia i zwrócenie obiektu PDO
        return new PDO($dsn, $user, $pass, $options);
    } catch (\PDOException $e) {
        // W przypadku błędu połączenia, przechwycenie wyjątku i rzucenie go ponownie z dodatkowymi informacjami
        throw new \PDOException($e->getMessage(), (int)$e->getCode());
    }
}

Przykład użycia

<?php
// Wywołanie funkcji polacz_z_zewnetrzna_baza, aby nawiązać połączenie z zewnętrzną bazą danych
// i przypisanie zwróconego obiektu PDO do zmiennej $pdo
$pdo = polacz_z_zewnetrzna_baza();

// Wykonanie zapytania SQL za pomocą metody query obiektu PDO
// Zapytanie 'SELECT * FROM nazwa_tabeli_kategorii' pobiera wszystkie dane z tabeli 'nazwa_tabeli_kategorii'
$stmt = $pdo->query('SELECT * FROM nazwa_tabeli_kategorii');

// Iteracja przez każdy wiersz zwrócony przez zapytanie
// W każdej iteracji, metoda fetch() pobiera kolejny wiersz wyników jako asocjacyjną tablicę
while ($kategoria = $stmt->fetch()) {
    // Tutaj możesz wykonywać operacje na pobranych danych (w zmiennej $kategoria)
    //... Bleble
}

Podsumowanie

Prezentowana funkcja polacz_z_zewnetrzna_baza() stanowi prosty i uniwersalny sposób na nawiązanie połączenia z zewnętrzną bazą danych MySQL w języku PHP. Funkcja jest łatwa w użyciu i może być wykorzystana w różnych projektach.

Dodatkowe informacje

We wpisie widzisz podstawowy przykład funkcji do nawiązywania połączenia z bazą danych. W rzeczywistych projektach może być konieczne rozszerzenie funkcjonalności funkcji, np. o obsługę różnych typów baz danych, szyfrowanie połączenia, czy buforowanie wyników zapytań.

Możesz rozszerzyć tę funkcję o dodatkowe opcje, na przykład:

  • Obsługę różnych typów baz danych (np. PostgreSQL, MSSQL).
  • Szyfrowanie połączenia z bazą danych.
  • Buforowanie zapytań w celu poprawy wydajności. Dodatkowe informacje na temat PDO i połączeń z bazami danych w PHP znajdziesz w oficjalnej dokumentacji: https://www.php.net/manual/en/book.pdo.php.