Połączenie z bazą danych przez PDO w PHP
Wykonajmy połączenie z bazą danych przez PDO. Na początek zapiszmy dane dostępowe w zmiennych:
<?php
$host = 'localhost'; // nazwa hosta (zazwyczaj zawsze taka)
$db = 'test'; // nazwa bazy danych
$user = 'root'; // nazwa użytkownika do logowania do BD
$pass = 'root'; // hasło do logowania do BD
?>
Teraz musimy utworzyć ciąg znaków
w specjalnym formacie. W tym ciągu
musimy podać typ używanej
bazy danych (zazwyczaj 'mysql'),
nazwę hosta i nazwę bazy danych:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Następnie tworzymy tablicę opcji PDO, których będziemy używać w procesie pracy (na razie się w nie nie zagłębiaj):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Teraz możemy nawiązać połączenie z bazą danych, używając zadeklarowanych powyżej zmiennych:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
Powyższy kod albo nawiąże połączenie
z bazą danych, albo rzuci wyjątek.
Dlatego bardziej poprawne jest opakowanie połączenia
w konstrukcję try-catch:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Pełny kod będzie wyglądał tak:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // nazwa użytkownika do logowania do BD
$pass = ''; // hasło do logowania do BD
$charset = 'utf8';
$dsn = "mysql:host=$host; dbname=$db; charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Nawiąż połączenie z twoją bazą danych w sposób opisany w lekcji.