htmlentities() non è necessario per rendere i dati sicuri per SQL. Viene utilizzato durante l'eco dei valori dei dati nell'output HTML, per evitare vulnerabilità XSS. Anche questo è un importante problema di sicurezza di cui devi essere consapevole, ma non è correlato a SQL.
addlashes() è ridondante con mysql_real_escape_string. Ti ritroverai con barre inverse letterali nelle tue stringhe nel database.
Non usare virgolette magiche. Questa funzione è stata deprecata per molti anni. Non distribuire codice PHP in un ambiente in cui le virgolette magiche sono abilitate. Se è abilitato, disattivalo. Se si tratta di un ambiente ospitato e non disattivano le virgolette magiche, procurati un nuovo provider di hosting.
Non utilizzare ext/mysql
. Non supporta parametri di query, transazioni o utilizzo OO.
Aggiornamento:ext/mysql
è stato deprecato in PHP 5.5.0 (2013-06-20) e rimosso in PHP 7.0.0 (2015-12-03). Non puoi proprio usarlo.
Usa PDO e rendi le tue query più sicure utilizzando query preparate .
Per maggiori dettagli sulla scrittura di SQL sicuro, leggi la mia presentazione SQL Injection Myths e Errori .