43 lines
1.1 KiB
PHP
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;
|
|
}
|
|
}
|