Heim  >  Artikel  >  Datenbank  >  Wie konvertiert man MySQL-Code in PDO-Anweisungen für mehr Sicherheit und Effizienz?

Wie konvertiert man MySQL-Code in PDO-Anweisungen für mehr Sicherheit und Effizienz?

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 04:32:02957Durchsuche

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

Wie konvertiere ich MySQL-Code in eine PDO-Anweisung?

Um die ursprüngliche if-Anweisung in eine PDO-Anweisung umzuwandeln, müssen Sie dies tun Zuerst eine Verbindung herstellen über PDO. So können Sie das tun:

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

Als nächstes müssen Sie Ihren vorhandenen Code ändern, um vorbereitete Anweisungen mit PDO zu verwenden. Hier ist eine aktualisierte Version des Codes:

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

Dieser aktualisierte Code verwendet vorbereitete Anweisungen mit PDO, um die Sicherheit und Effizienz zu verbessern. Außerdem wird der NULL-Koaleszieroperator (??) verwendet, um Variablen Standardwerte zuzuweisen, wenn diese null sind.

Das obige ist der detaillierte Inhalt vonWie konvertiert man MySQL-Code in PDO-Anweisungen für mehr Sicherheit und Effizienz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn