Hanya pernyataan yang disiapkan yang menyediakan pelarian otomatis, dengan asumsi Anda tidak memiliki beberapa keburukan seperti kutipan ajaib yang diaktifkan. Dan hanya data di params yang lolos, bukan apa pun yang sudah ada di string SQL saat Anda menyiapkan pernyataan.
Jika Anda menginginkan manfaat pelolosan otomatis, Anda harus menyiapkan pernyataan dan memasukkan datanya secara terpisah.
$sth = $dbh->prepare("SELECT * FROM users WHERE username=? AND password=?");
$sth->execute(array($username, $password));
Jika tidak, Anda mendapatkan sedikit atau tidak ada perlindungan atas mysqli_query
dan kawan kawan. (Saya bahkan menolak untuk menyebut mysql_query
, karena tidak ada lagi programmer PHP yang menghargai diri sendiri yang menggunakannya. Oh, tunggu..sial. Yah, hanya itu yang disebutkan di sini.)