htmlentities (se tu leggessi le documentazioni ufficiali) vedresti che non fa altro che ricodificare la stringha on formato html per cui ogni carattere speciale viene trasformato nel relativo codice html.
Accenti e quant'altro restano.
OGGI, nel 2012, trovo una cosa folle dover ricorrere a quaste procedure per dover salvare dei testi. BISOGNA ASSOLUTAMENTE inizare a familiarizzare ed untilizzare unicode, e quindi sia le tabelle che gli script che le pagine web vanno impostate per gestire i caratteri utf-8.

Questo unitamente all'utilizzi di procedurei simili a quella che ti ho postato ti servirà per poter salvare i dati senza problemi ulteriori di cofifica o di fallimento delle query nonche' abbatte quasi completamente le probabilità che l'untente possa sfruttare le tue procedure per eseguire sql injection nel tuo sistema.