Rumah  >  Artikel  >  pangkalan data  >  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
Linda Hamiltonasal
2024-11-09 04:32:02949semak imbas

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

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

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!

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