Fungsi mysql_* Usang
Secara tradisinya, pembangun PHP telah bergantung pada fungsi seperti mysql_connect, mysql_query, dan mysql_real_escape_string untuk berinteraksi dengan pangkalan data MySQL. Walau bagaimanapun, fungsi ini tidak digunakan lagi dan terdedah kepada eksploitasi keselamatan.
Kelebihan PDO
PDO (Objek Data PHP) ialah perpustakaan yang lebih moden dan selamat untuk komunikasi pangkalan data . Ia menyediakan antara muka yang konsisten untuk berinteraksi dengan pelbagai sistem pangkalan data, termasuk MySQL. Penyata yang disediakan, ciri PDO, menawarkan peningkatan keselamatan yang ketara.
Menyediakan Penyata dengan PDO
Pernyataan yang disediakan membolehkan anda membuat pertanyaan SQL dan mengikat nilai padanya dengan selamat . Apabila melaksanakan pernyataan yang disediakan, PDO secara automatik melarikan diri daripada sebarang aksara yang berpotensi berbahaya, melindungi anda daripada serangan suntikan SQL.
Memasukkan Data Dengan Selamat
Untuk memasukkan data dengan selamat menggunakan PDO dan disediakan pernyataan:
$username = $_POST['username']; $email = $_POST['email']; $stmt = $dbh->prepare("INSERT INTO `users` (username, email) VALUES (:username, :email)"); $stmt->bindParam(':username', $username, PDO::PARAM_STR); $stmt->bindParam(':email', $email, PDO::PARAM_STR); $stmt->execute();
Dalam contoh ini, nilai daripada tatasusunan $_POST terikat pada parameter pertanyaan menggunakan PDO::PARAM_STR untuk menunjukkan bahawa ia adalah rentetan. Pangkalan data akan melarikan diri secara automatik daripada nilai ini.
Mengambil Data dengan PDO
Untuk mengambil data dengan selamat:
$stmt = $dbh->prepare("SELECT * FROM `users` WHERE `id` = :user_id"); $stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT); $stmt->execute(); $results = $stmt->fetchAll();
Kesimpulan
Dengan menggantikan fungsi mysql_* dengan PDO dan pernyataan yang disediakan, anda boleh meningkatkan keselamatan interaksi pangkalan data anda secara mendadak. PDO menyediakan antara muka yang konsisten dan selamat yang menghapuskan keperluan untuk melarikan diri secara manual dan mengurangkan risiko serangan suntikan SQL.
Atas ialah kandungan terperinci Mengapa Anda Perlu Beralih daripada mysql_* Fungsi kepada PDO dan Penyata Disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!