PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_TIMEOUT => 5, // Short timeout for faster fallback
]);
return $pdo;
} catch (PDOException $pgException) {
// Keep the error to report it if the fallback also fails
}
}
// Fallback to local MariaDB/MySQL
try {
$pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8mb4', DB_USER, DB_PASS, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);
} catch (PDOException $mysqlException) {
if (!extension_loaded('pdo_pgsql')) {
die("Connection failed: The 'pdo_pgsql' extension is not enabled in your PHP configuration, and the local MySQL connection also failed.
MySQL Error: " . $mysqlException->getMessage());
}
$errorMsg = "
DB_USER and DB_PASS in db/config.php to match your XAMPP settings (usually 'root' and empty password).extension=pdo_pgsql is uncommented in php.ini AND you have restarted Apache.