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) { // Fall back to Unix socket (common for local MacOS XAMPP environments) if (defined('DB_SOCKET') && file_exists(DB_SOCKET)) { try { $dsn_sock = "mysql:unix_socket=" . DB_SOCKET . ";dbname=" . DB_NAME . ";charset=utf8mb4"; $pdo = new PDO($dsn_sock, DB_USER, DB_PASS, $options); } catch (PDOException $ex) { die("Database Socket Connection failed: " . $ex->getMessage()); } } else { // Render detailed message for local user configurations die("Database Connection failed: " . $e->getMessage() . "
Please ensure your MySQL server is running in XAMPP."); } }