"man skal kunne søge i gamle indlæg" > Dette kan klares ved at du også bruger htmlentities() på søgekriteriet. Det er klart at dette giver et lille ekstra overhead ved en søgning, men dette skal holdes op imod at siden nok skal vises flere gange uden at der også søges.
"Men jeg tænker allermest på sikkerheden" > Dette har ikke noget at gøre med *hvornår* du kalder htmlentities() - kun at du *gør* det på et eller andet tidspunkt i forløbet.
Mht. sikkerhed omkring indsættelse i databasen (SQL injection), har dette intet at gøre med htmlentities() som pr. default ikke encoder enkelt '-tegn. Dette kan man dog sætte den til vha. at give ENT_QUOTES som 2. argument:
http://dk2.php.net/htmlentitiesSikkerhed omkring indsættelse i databasen, bør dog generelt ikke blandes sammen med sikkerhed omkring at man får indlejret fjentligt html-kode på siden (f.eks. Cross Site Scripting); Det er to forskellige typer af angreb, og de bør adresseres hver for sig.