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
Barbara Streisandasal
2024-11-06 01:12:02415semak imbas

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
]);

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();

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";
}

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:
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