htmlentities() tidak diperlukan untuk membuat data aman untuk SQL. Ini digunakan saat menggemakan nilai data ke output HTML, untuk menghindari kerentanan XSS. Itu juga merupakan masalah keamanan penting yang perlu Anda perhatikan, tetapi ini tidak terkait dengan SQL.
addlashes() berlebihan dengan mysql_real_escape_string. Anda akan berakhir dengan garis miring terbalik literal di string Anda di database.
Jangan gunakan kutipan ajaib. Fitur ini telah ditinggalkan selama bertahun-tahun. Jangan menyebarkan kode PHP ke lingkungan di mana tanda kutip ajaib diaktifkan. Jika diaktifkan, matikan. Jika itu adalah lingkungan yang dihosting dan mereka tidak akan mematikan kutipan ajaib, dapatkan penyedia hosting baru.
Jangan gunakan ext/mysql
. Itu tidak mendukung parameter kueri, transaksi, atau penggunaan OO.
Pembaruan:ext/mysql
tidak digunakan lagi di PHP 5.5.0 (2013-06-20), dan dihapus di PHP 7.0.0 (2015-12-03). Anda benar-benar tidak dapat menggunakannya.
Gunakan PDO , dan buat kueri Anda lebih aman dengan menggunakan kueri yang disiapkan .
Untuk detail lebih lanjut tentang menulis SQL yang aman, baca presentasi saya Mitos Injeksi SQL dan Kekeliruan .