Apabila bekerja dengan pangkalan data dalam PHP, selalunya perlu menukar kod MySQL kepada pernyataan PDO (Objek Data PHP). PDO menyediakan cara yang konsisten dan selamat untuk berinteraksi dengan pangkalan data, tanpa mengira pemacu asas. Panduan ini akan menunjukkan kepada anda cara menukar kod MySQL anda kepada pernyataan PDO.
Langkah pertama ialah membuat sambungan ke pangkalan data menggunakan PDO. Berikut ialah contoh cara untuk melakukannya:
$db_host = "127.0.0.1"; $db_name = "database_name"; $db_user = "username"; $db_pass = "password"; $pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
Setelah anda mempunyai sambungan PDO, anda boleh mula menukar kod MySQL anda kepada pernyataan PDO.
Pernyataan yang disediakan dengan mysqli dan PDO
Pernyataan yang disediakan ialah cara selamat untuk melaksanakan pertanyaan yang mengandungi data yang dibekalkan pengguna. Mereka menghalang suntikan SQL dengan mengikat data kepada pertanyaan sebelum ia dilaksanakan.
Berikut ialah contoh pernyataan yang disediakan dalam MySQLi:
$sql = "SELECT * FROM users WHERE username = ? AND password = ?"; $stmt = $mysqli->prepare($sql); $stmt->bind_param("ss", $username, $password); $stmt->execute(); $result = $stmt->get_result();
Berikut adalah pertanyaan yang sama dalam PDO:
$sql = "SELECT * FROM users WHERE username = ? AND password = ?"; $stmt = $pdo->prepare($sql); $stmt->bindParam(1, $username, PDO::PARAM_STR); $stmt->bindParam(2, $password, PDO::PARAM_STR); $stmt->execute(); $result = $stmt->fetchAll();
Kod dikemas kini
Berikut ialah contoh cara menukar kod MySQL daripada soalan kepada pernyataan PDO:
$id = $_SESSION['u_id'] ?? NULL; if ($id) { $sql = "SELECT email FROM users WHERE u_id = ?"; $stmt = $pdo->prepare($sql); $stmt->execute([$id]); $email = $stmt->fetchColumn(); } $email = $email ?? ""; $suggestions = selectAll($table); $optionOne = $_POST['optionOne'] ?? ""; $optionTwo = $_POST['optionTwo'] ?? ""; $newSuggestion = $_POST['new-suggestion'] ?? ""; if ($newSuggestion && $id && $email && $optionOne && $optionTwo) { $sql = "INSERT INTO suggestions (user_id, email, option_1, option_2) VALUES (?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$id, $email, $optionOne, $optionTwo]); } else { echo "All options must be entered"; }
Menukar kod MySQL kepada pernyataan PDO adalah proses yang agak mudah. Dengan mengikut langkah yang digariskan dalam panduan ini, anda boleh memindahkan kod anda ke PDO dengan mudah dan memanfaatkan faedahnya, seperti keselamatan dan prestasi yang dipertingkatkan.
Atas ialah kandungan terperinci Bagaimanakah saya menukar kod MySQL kepada pernyataan PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!