"Do you know if he has a girlfriend?"
Translation:Sai se ha una fidanzata?
Dnovinc explains it well. Sapere is to know a fact (or as mentioned, to know how to do something - Sai parlare l'italiano? Sai suonare la chitarra?). Conoscere is to be familiar/acquainted with something or someone, rather than knowing a fact or piece of information.
So la canzone isn't really appropriate, although of course Italians will know what you mean. Better in that instance to use conosco. Well actually it depends on the context a little, but generally conoscere.
The verbs sapere and conoscere both mean "to know," but have different implications.
Sapere means "to know," "to be able to," or "to know how to."
- So la canzone. (I know the song.)
Conoscere means to know, to be acquainted with, or to make the acquaintance of:
- Io conosco Francesca a casa di Giuseppe. (I met Francesca at Giuseppe's house.)
Just to add: there are some gray areas (for example you can say 'conosco la canzone' as well) dnovinc presents a good contrast but you may want to to immerse yourself in the use of both, memorizing the difference might not help when you realize the two words work like a Venn diagram ;)