getenv('DB_HOST') ?: 'localhost', 'user' => getenv('DB_USER') ?: 'root', 'pass' => getenv('DB_PASS') ?: '', 'name' => getenv('DB_NAME') ?: 'webgis', 'charset' => getenv('DB_CHARSET') ?: 'utf8mb4', ]; $localConfigFile = __DIR__ . '/database.local.php'; if (is_file($localConfigFile)) { $localConfig = require $localConfigFile; if (is_array($localConfig)) { $config = array_merge($config, array_intersect_key($localConfig, $config)); } } return $config; } } $dbConfig = loadDatabaseConfig(); define('DB_HOST', $dbConfig['host']); define('DB_USER', $dbConfig['user']); define('DB_PASS', $dbConfig['pass']); define('DB_NAME', $dbConfig['name']); define('DB_CHARSET', $dbConfig['charset']); function getDB(): mysqli { static $conn = null; if ($conn === null) { $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); if ($conn->connect_error) { error_log('DB connection failed: ' . $conn->connect_error); http_response_code(500); echo json_encode([ 'status' => 'error', 'message' => 'Koneksi database gagal' ]); exit; } $conn->set_charset(DB_CHARSET); } return $conn; }