L'errore che ti viene restituito è legato al fatto che all'interno del campo c'è un apice singolo (').
mysql_real_escape_string ti fa l'escape di quel carattere, ovviamente non togliendolo dal testo.
htmlentities ti converte i caratteri nel relativo formato html, mentre tu ha solo bisogno di fare un escape.
Entrambe le soluzioni fanno in modo che tu posso inserire l'apice senza incorrere in errori, la prima fa solo quello, la seconda fa anche quello.