SQLに対してデータを安全にするためにhtmlentities()は不要です。 XSSの脆弱性を回避するために、データ値をHTML出力にエコーするときに使用されます。これも注意が必要な重要なセキュリティの問題ですが、SQLとは関係ありません。
addlashes()はmysql_real_escape_stringと冗長です。データベース内の文字列に文字通りの円記号が含まれることになります。
魔法の引用符は使用しないでください。この機能は長年廃止されています。マジッククォートが有効になっている環境にPHPコードをデプロイしないでください。有効になっている場合は、オフにします。それがホストされた環境であり、魔法の引用符がオフにならない場合は、新しいホスティングプロバイダーを入手してください。
ext/mysql
は使用しないでください 。クエリパラメータ、トランザクション、またはOOの使用はサポートされていません。
更新:ext/mysql
PHP 5.5.0(2013-06-20)で非推奨になり、PHP 7.0.0(2015-12-03)で削除されました。本当に使えません。
PDO を使用します 、準備されたクエリ を使用して、クエリをより安全にします。 。
安全なSQLの記述の詳細については、私のプレゼンテーションSQLインジェクションの神話とファラシー 。