PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false ]); } catch (PDOException $e) { error_log("Database connection failed: " . $e->getMessage()); throw new Exception("Database connection failed"); } } return $db; } function db_query($sql, $params = []) { $db = get_db_connection(); $stmt = $db->prepare($sql); $stmt->execute($params); return $stmt; } function db_fetch($sql, $params = []) { return db_query($sql, $params)->fetch(); } function db_fetch_all($sql, $params = []) { return db_query($sql, $params)->fetchAll(); } function db_execute($sql, $params = []) { return db_query($sql, $params)->rowCount(); }