30 lines
770 B
PHP
30 lines
770 B
PHP
<?php
|
|
namespace Blog\Database;
|
|
|
|
use PDO;
|
|
use PDOException;
|
|
|
|
class Database {
|
|
private static ?PDO $pdo = null;
|
|
|
|
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;
|
|
}
|
|
}
|