1. David has been having fever for the past two days.
2. David has had fever for the past two days.
(Not a Teacher)
I'd go for #2, with an 'a' added before 'fever'.
"David has had a fever for the past two days."
I don't know if #1 is wrong grammatically but it sounds excessively verbose, and I don't think I'd ever find myself expressing it that way.