io di solito nel db salvo i dati già convertiti nelle varie codifiche html, anche per evitare ad esempio che gli apici singoli mi vadano in conflitto nel momento in cui faccio l'insert nel db. Poi ovviamente nel momento in cui li recupero e li stampo a video faccio l'operazione contraria.

quindi in inserimento utilizzo, a scanso di equivoci, sia l'htmlentities() che il mysql_escape_string() mentre in visualizzazione vado di stripslashes() e html_entity_decode()