Datenbankverbindung mit PDO in PHP
Lassen Sie uns eine Verbindung zur Datenbank über PDO herstellen. Zuerst speichern wir die Zugangsdaten in Variablen:
<?php
$host = 'localhost'; // Hostname (in der Regel immer so)
$db = 'test'; // Datenbankname
$user = 'root'; // Benutzername für die Datenbank
$pass = 'root'; // Passwort für die Datenbank
?>
Nun müssen wir eine Zeichenkette
in einem speziellen Format bilden. In dieser Zeichenkette
müssen wir den Typ der verwendeten
Datenbank (in der Regel 'mysql'),
den Hostnamen und den Datenbanknamen angeben:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Dann erstellen wir ein Array mit PDO-Optionen, die wir im Arbeitsprozess verwenden werden (verstehen Sie sie vorerst nicht im Detail):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Nun können wir die Verbindung zur Datenbank herstellen, indem wir die oben deklarierten Variablen verwenden:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
Der obige Code führt entweder eine Verbindung
zur Datenbank her oder wirft eine Ausnahme.
Daher ist es korrekter, die Verbindung
in eine try-catch-Konstruktion zu verpacken:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Der vollständige Code sieht dann so aus:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // Benutzername für die Datenbank
$pass = ''; // Passwort für die Datenbank
$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();
}
?>
Stellen Sie eine Verbindung zu Ihrer Datenbank auf die im Unterricht beschriebene Weise her.