Desain mysql_query
fungsinya sedemikian rupa sehingga Anda harus berhati-hati untuk menghindari setiap bit data yang Anda masukkan ke dalamnya, dan jika Anda melewatkan satu pun, seluruh aplikasi Anda dapat dihancurkan oleh alat eksploitasi kerentanan SQL otomatis
.
Keduanya mysqli
dan placeholder dukungan PDO yang diperlukan untuk memastikan bahwa kueri Anda aman dari bug injeksi SQL. Memanggil mysql_real_escape_string
pada semuanya tidak hanya membosankan, tetapi rawan kesalahan, dan di situlah masalah muncul.
mysql
fungsi adalah produk dari hari-hari awal PHP dan secara signifikan lebih terbatas daripada fitur berorientasi objek baru yang ditawarkan oleh mysqli
sebagai pilihan, atau PDO sesuai desain.
Ada sejumlah alasan yang sangat bagus untuk menggunakan salah satu dari dua antarmuka baru ini, tetapi yang paling penting adalah mysql_query
fungsi terlalu berbahaya untuk digunakan dalam kode produksi. Dengan itu Anda akan selalu menjadi satu kesalahan dari beberapa masalah yang sangat serius.
Ada alasan mengapa database yang penuh dengan kata sandi dan nomor kartu kredit terus muncul. Memiliki titik injeksi SQL yang jelas membuatnya hampir terlalu mudah untuk sepenuhnya mengambil alih sebuah situs.