abschluss
This commit is contained in:
41
app/Database/Database.php
Normal file
41
app/Database/Database.php
Normal file
@ -0,0 +1,41 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user