I would look at Niels example above and try to get dbSetCameraToFollow() to work.
I'll show you what I use, but its probably not as easy as dbSetCameraToFollow().
float itsX = distance*dbSIN(dbWrapValue(playerAngleY+relativeCameraAngleY));
float itsZ = distance*dbCOS(dbWrapValue(playerAngleY+relativeCameraAngleY));
itsX and itsZ = your new camera angles every loop.
distance = distance of camera from player(keep same for circular motion)
playerAngleY = current player angle
relativeCameraAngle = Where camera is relative to player(use 180 for camera behind)
Then I position camera at your playersX+itsX, anyYvalue, playersZ+itsZ.
Also Rotate Camera to match same angle as player.
dbSetCameraToFollow() is probably just doing something similar to what Im doing, the advantage of my way is that you can also use it to position objects around the player,
e.g a gun strapped to back etc..
I use it so when my player throws a grenade it always comes from the left hand side(throwing arm) of the player.
Going to bed now but will check in tommorrow, good luck.