Rumah > pangkalan data > tutorial mysql > Cara Menukar Kod MySQL kepada Penyata Disediakan PDO: Panduan Langkah demi Langkah

Cara Menukar Kod MySQL kepada Penyata Disediakan PDO: Panduan Langkah demi Langkah

Barbara Streisand
Lepaskan: 2024-11-06 01:12:02
asal
491 orang telah melayarinya

How to Convert MySQL Code to a PDO Prepared Statement: A Step-by-Step Guide

Tukar Kod MySQL kepada Pernyataan PDO: Panduan Langkah demi Langkah

Memahami Isu

Anda ingin menggantikan pernyataan if pertama dengan pernyataan PDO untuk mendapatkan semula e-mel pengguna daripada pangkalan data menggunakan ID.

Menyambung dengan PDO

Untuk menggunakan PDO, anda mesti mewujudkan sambungan ke pangkalan data MySQL dahulu:

$db_host = "127.0.0.1";
$db_user = "root";
$db_pass = "";
$db_database = "my_database";

$pdo = new PDO("mysql:host=$db_host;dbname=$db_database", $db_user, $db_pass, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_EMULATE_PREPARES => false
]);
Salin selepas log masuk

Mengemas kini Kod

Disediakan Penyata

Penyataan yang disediakan menawarkan peningkatan keselamatan dan kebolehbacaan, terutamanya apabila bekerja dengan input pengguna.

$sql = "SELECT email FROM users WHERE u_id = ?";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $id, PDO::PARAM_INT);
$stmt->execute();
$email = $stmt->fetchColumn();
Salin selepas log masuk

Kod Kemas Kini

Kod yang dikemas kini kod dengan PDO dan pernyataan yang disediakan:

$id = $_SESSION['u_id'] ?? NULL;

if ($id) {
    $sql = "SELECT email FROM users WHERE u_id = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(1, $id, PDO::PARAM_INT);
    $stmt->execute();
    $email = $stmt->fetchColumn();
}

$email = $email ?? "";  // To avoid PHP notices
$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->bindParam(1, $id, PDO::PARAM_INT);
    $stmt->bindParam(2, $email, PDO::PARAM_STR);
    $stmt->bindParam(3, $optionOne, PDO::PARAM_STR);
    $stmt->bindParam(4, $optionTwo, PDO::PARAM_STR);
    $stmt->execute();
} else {
    echo "All options must be entered";
}
Salin selepas log masuk

Atas ialah kandungan terperinci Cara Menukar Kod MySQL kepada Penyata Disediakan PDO: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan