Rumah >pangkalan data >tutorial mysql >Cara Mencegah Suntikan MySQL dengan Penyata Disediakan PDO: Adakah Terdapat PDO Bersamaan dengan `mysql_real_escape_string()`?
PDO Setara dengan mysql_real_escape_string()
Dalam pemindahan kod anda dari mysql_* ke PDO, anda sedang mencari yang setara untuk mysql_string(real_escape). Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa tiada persamaan langsung dalam PDO.
Secara teknikal, PDO::quote() wujud, tetapi ia tidak biasa digunakan dan tidak setanding dengan mysql_real_escape_string().
Pencegahan Suntikan MySQL yang Betul
Apabila menggunakan PDO dengan sewajarnya dengan pernyataan yang disediakan, anda mendapat perlindungan daripada suntikan MySQL. Penyata yang disediakan membersihkan input anda, menghapuskan keperluan untuk fungsi seperti mysql_real_escape_string().
Contoh Pertanyaan Pangkalan Data Selamat menggunakan Penyata Disediakan
Berikut ialah contoh pangkalan data selamat pertanyaan menggunakan pernyataan yang disediakan PDO:
$db = new PDO( "mysql:host=localhost;dbname=xxx;charset=utf8", "xxx", "xxx", [ PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ] ); // Prepared statement $stmt = $db->prepare("SELECT id, name, color FROM Cars WHERE color = ?"); // Execute statement $stmt->execute(array($_POST['color'])); // Fetch result $cars = $stmt->fetchAll(PDO::FETCH_ASSOC);
Seperti yang anda lihat, kami tidak melarikan diri atau membersihkan $_POST['color'], namun kod tersebut kekal selamat daripada suntikan MySQL terima kasih kepada PDO dan kuasa kenyataan yang disediakan.
Nota Tambahan
Kesimpulan
Menggunakan pernyataan yang disediakan seperti yang ditunjukkan di atas sentiasa lebih selamat daripada menggunakan fungsi mysql_*. Mekanisme perlindungan terbina dalam PDO menyediakan pendekatan yang lebih mantap dan selamat untuk mencegah suntikan MySQL.
Atas ialah kandungan terperinci Cara Mencegah Suntikan MySQL dengan Penyata Disediakan PDO: Adakah Terdapat PDO Bersamaan dengan `mysql_real_escape_string()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!