Files
blog/app/Database/Database.php
2025-06-20 07:55:37 +00:00

42 lines
1.1 KiB
PHP

<?php
namespace Blog\Database;
use PDO;
use PDOException;
/**
* Verwaltet die Verbindung zur MySQL-Datenbank.
*/
class Database {
/**
* @var PDO|null Statische Instanz der Datenbankverbindung.
*/
private static ?PDO $pdo = null;
/**
* Stellt eine Verbindung zur Datenbank her oder gibt die bestehende zurück.
*
* @return PDO Die aktive PDO-Verbindung.
* @throws PDOException Falls die Verbindung fehlschlägt.
*/
public static function getConnection(): PDO {
if(self::$pdo === null) {
$config = parse_ini_file(__DIR__ . "/../../.env");
try {
self::$pdo = new PDO(
"mysql:host={$config['DB_HOST']};dbname={$config['DB_NAME']};charset=utf8mb4",
$config['DB_USER'],
$config['DB_PASS'], [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::ATTR_PERSISTENT => true
]
);
} catch(PDOException $e) {
die("Datenbankverbindung fehlgeschlagen: " . $e->getMessage());
}
}
return self::$pdo;
}
}