htmlentities() no es necesario para que los datos sean seguros para SQL. Se usa cuando se hacen eco de los valores de datos en la salida HTML, para evitar vulnerabilidades XSS. Ese también es un problema de seguridad importante que debe tener en cuenta, pero no está relacionado con SQL.
addedlashes() es redundante con mysql_real_escape_string. Terminará con barras invertidas literales en sus cadenas en la base de datos.
No uses comillas mágicas. Esta función ha quedado obsoleta durante muchos años. No implemente código PHP en un entorno donde las comillas mágicas estén habilitadas. Si está habilitado, apáguelo. Si se trata de un entorno alojado y no desactivarán las comillas mágicas, obtenga un nuevo proveedor de alojamiento.
No use ext/mysql
. No admite parámetros de consulta, transacciones ni uso de OO.
Actualización:ext/mysql
quedó en desuso en PHP 5.5.0 (2013-06-20) y se eliminó en PHP 7.0.0 (2015-12-03). Realmente no puedes usarlo.
Utilice PDO y haz que tus consultas sean más seguras usando consultas preparadas .
Para obtener más detalles sobre cómo escribir SQL seguro, lea mi presentación Mitos y falacias de inyección de SQL Falacias .