Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menukar Kod MySQL kepada Pernyataan PDO untuk Keselamatan dan Kecekapan yang Lebih Baik?

Bagaimana untuk Menukar Kod MySQL kepada Pernyataan PDO untuk Keselamatan dan Kecekapan yang Lebih Baik?

Linda Hamilton
Lepaskan: 2024-11-09 04:32:02
asal
989 orang telah melayarinya

How to Convert MySQL Code to PDO Statements for Improved Security and Efficiency?

Bagaimana untuk menukar kod MySQL kepada penyataan PDO?

Untuk menukar penyataan if awal kepada penyataan PDO, anda perlu mula-mula wujudkan sambungan menggunakan PDO. Begini cara anda boleh melakukannya:

// Define database connection parameters
$db_host = "127.0.0.1";
$db_name = "name_of_database";
$db_user = "user_name";
$db_pass = "user_password";

try {
    // Create a connection to the MySQL database using PDO
    $pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
} catch (PDOException $e) {
    echo 'Failed to connect to the database: ' . $e->getMessage();
}
Salin selepas log masuk

Seterusnya, anda perlu ubah suai kod sedia ada anda untuk menggunakan pernyataan yang disediakan dengan PDO. Berikut ialah versi kod yang dikemas kini:

// Initialize variables
$id = $_SESSION['u_id'] ?? NULL;
$email = NULL;

if($id) {
    // Prepare the SQL statement
    $sql = "SELECT email FROM users WHERE u_id = :id";
    $query = $pdo->prepare($sql);
    
    // Bind the parameter and execute the query
    $query->bindParam(':id', $id, PDO::PARAM_STR);
    $query->execute();
    
    // Fetch the result
    $row = $query->fetch(PDO::FETCH_OBJ);
    $email = $row->email;
}

// Initialize other variables
$optionOne     = $_POST['optionOne'] ?? "";
$optionTwo     = $_POST['optionTwo'] ?? "";
$newSuggestion = $_POST['new-suggestion'] ?? "";

// Check if the form was submitted
if($newSuggestion and $id and $email and $optionOne and $optionTwo) {
    // Prepare the SQL statement
    $sql = "INSERT INTO suggestions (user_id, email, option_1, option_2) VALUES (:id, :email, :option_1, :option_2)";
    $query = $pdo->prepare($sql);

    // Bind the parameters and execute the query
    $query->bindParam(':id', $id, PDO::PARAM_STR);
    $query->bindParam(':email', $email, PDO::PARAM_STR);
    $query->bindParam(':option_1', $optionOne, PDO::PARAM_STR);
    $query->bindParam(':option_2', $optionTwo, PDO::PARAM_STR);
    $query->execute();
} else {
    echo "All options must be entered.";
}
Salin selepas log masuk

Kod yang dikemas kini ini menggunakan pernyataan yang disediakan dengan PDO untuk meningkatkan keselamatan dan kecekapan. Ia juga menggunakan NULL coalescing operator (??) untuk menetapkan nilai lalai kepada pembolehubah apabila ia adalah nol.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Kod MySQL kepada Pernyataan PDO untuk Keselamatan dan Kecekapan yang Lebih Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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