Soalan:
Bagaimana saya boleh menggantikan fungsi mysql_* yang sudah lapuk dengan PDO dan penyata yang disediakan untuk menyimpan dan mendapatkan semula data daripada pangkalan data dengan selamat?
Jawapan:
$hostname = '*host*'; $username = '*user*'; $password = '*pass*'; $database = '*database*'; $dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
$username = $_POST['username']; $email = $_POST['email']; $stmt = $dbh->prepare("INSERT INTO `users` (username, email) VALUES (?, ?)"); $stmt->bindParam(1, $username, PDO::PARAM_STR); $stmt->bindParam(2, $email, PDO::PARAM_STR); $stmt->execute();
Parameter panjang tidak diperlukan untuk PDO::PARAM_STR. Walau bagaimanapun, jika anda mempunyai had aksara maksimum untuk medan dalam jadual pangkalan data anda, anda boleh menentukannya selepas PDO::PARAM_STR seperti yang ditunjukkan di bawah:
$stmt->bindParam(1, $username, PDO::PARAM_STR, 255);
$user_id = $_GET['id']; $stmt = $dbh->prepare("SELECT * FROM `users` WHERE `id` = ?"); $stmt->bindParam(1, $user_id, PDO::PARAM_INT);
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Fungsi `mysql_*` Lapuk dengan PDO dan Penyata Disediakan untuk Interaksi Pangkalan Data Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!