Files
server/app/Config/Database.php
Halbe Bruno f37bc712e6 DNSBlock
2025-12-05 19:40:39 -03:00

43 lines
1.1 KiB
PHP

<?php
namespace App\Config;
use PDO;
use PDOException;
class Database
{
private static $instance = null;
private $conn;
private function __construct()
{
$host = $_ENV['DB_HOST'] ?? getenv('DB_HOST') ?: 'localhost';
$name = $_ENV['DB_NAME'] ?? getenv('DB_NAME') ?: 'dnsblock';
$user = $_ENV['DB_USER'] ?? getenv('DB_USER') ?: 'root';
$pass = $_ENV['DB_PASS'] ?? getenv('DB_PASS') ?: '';
$port = $_ENV['DB_PORT'] ?? getenv('DB_PORT') ?: '3306';
try {
$this->conn = new PDO("mysql:host=$host;port=$port;dbname=$name;charset=utf8mb4", $user, $pass);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
}
public static function getInstance()
{
if (self::$instance == null) {
self::$instance = new Database();
}
return self::$instance;
}
public function getConnection()
{
return $this->conn;
}
}