Current directory: /home/klas4s23/domains/585455.klas4s23.mid-ica.nl/public_html/Gastenboek/uploads
<?php
/**
* Database Configuration
* Pas deze instellingen aan voor jouw lokale omgeving
*/
// Database configuratie constanten
// Gebruik environment variables voor Docker, fallback naar localhost voor XAMPP
define('DB_HOST', getenv('DB_HOST') ?: 'localhost');
define('DB_USER', getenv('DB_USER') ?: 'root');
define('DB_PASS', getenv('DB_PASSWORD') ?: '');
define('DB_NAME', getenv('DB_NAME') ?: 'english_learning_app');
define('DB_CHARSET', 'utf8mb4');
/**
* Maakt verbinding met de database
* @return PDO Database connectie object
* @throws PDOException bij verbindingsfout
*/
function getDbConnection() {
static $pdo = null;
if ($pdo === null) {
try {
$dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET;
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, DB_USER, DB_PASS, $options);
} catch (PDOException $e) {
// Log de error (in productie zou je dit naar een logfile schrijven)
error_log("Database connection failed: " . $e->getMessage());
throw new PDOException("Database connection failed");
}
}
return $pdo;
}
/**
* Test de database verbinding
* @return bool True als verbinding succesvol is
*/
function testDbConnection() {
try {
$pdo = getDbConnection();
return $pdo !== null;
} catch (Exception $e) {
return false;
}
}