PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, // true server-side prepares PDO::ATTR_STRINGIFY_FETCHES => false, ]; try { $pdo = new PDO($dsn, DB_USER, DB_PASS, $opt); } catch (Throwable $e) { error_log('DB connect failed: ' . $e->getMessage()); http_response_code(500); exit('Service temporarily unavailable.'); } return $pdo; }