🢂Łą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.