37193-vm/db/config.php
Flatlogic Bot 01a63cbdaa 1.0
2025-12-29 07:28:15 +00:00

42 lines
1.3 KiB
PHP

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if (file_exists(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
}
function get_db_config() {
$config = [
'host' => getenv('DB_HOST') ?: '127.0.0.1',
'port' => getenv('DB_PORT') ?: '3306',
'name' => getenv('DB_NAME') ?: 'default_db',
'user' => getenv('DB_USER') ?: 'default_user',
'pass' => getenv('DB_PASS') ?: 'default_pass',
];
if (empty($config['name'])) die('DB_NAME is not set');
if (empty($config['user'])) die('DB_USER is not set');
return $config;
}
function db() {
static $pdo;
if ($pdo) {
return $pdo;
}
try {
$c = get_db_config();
$dsn = sprintf('mysql:host=%s;port=%d;dbname=%s;charset=utf8mb4', $c['host'], $c['port'], $c['name']);
$pdo = new PDO($dsn, $c['user'], $c['pass'], [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
]);
return $pdo;
} catch (PDOException $e) {
error_log($e->getMessage());
http_response_code(500);
die('Database connection failed. Check server logs.');
}
}