Files
ponlork_1st/config.php
2026-01-29 14:31:48 +07:00

36 lines
1.3 KiB
PHP

<?php
// config.php
// Central file for database connection and configuration.
// Ensure application log directory exists for capturing warnings/errors.
$logDir = __DIR__ . '/logs';
if (!is_dir($logDir)) {
@mkdir($logDir, 0775, true);
}
if (is_dir($logDir) && is_writable($logDir)) {
ini_set('log_errors', '1');
ini_set('error_log', $logDir . '/app.log');
}
// Database credentials (allow override via environment variables for Docker support)
define('DB_HOST', getenv('DB_HOST') ?: 'localhost');
define('DB_PORT', getenv('DB_PORT') ?: '3306');
define('DB_USER', getenv('DB_USER') ?: 'root');
define('DB_PASS', getenv('DB_PASS') !== false ? getenv('DB_PASS') : '');
define('DB_NAME', getenv('DB_NAME') ?: 'niph_dsps');
// Establish PDO connection
try {
$dsn = sprintf('mysql:host=%s;port=%s;dbname=%s;charset=utf8mb4', DB_HOST, DB_PORT, DB_NAME);
$pdo = new PDO($dsn, DB_USER, DB_PASS);
// Set PDO attributes for error handling and default fetch mode
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch (PDOException $e) {
// In a production environment, log the error and show a generic message
error_log("Database connection failed: " . $e->getMessage());
die("A problem occurred with the database connection. Please try again later.");
}
?>