Maison >base de données >tutoriel mysql >Comment convertir le code MySQL en instructions PDO pour une sécurité et une efficacité améliorées ?
Comment convertir le code MySQL en instruction PDO ?
Afin de changer l'instruction if initiale en instruction PDO, vous devrez d'abord établir une connexion à l'aide de PDO. Voici comment procéder :
// 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(); }
Ensuite, vous devez modifier votre code existant pour utiliser les instructions préparées avec PDO. Voici une version mise à jour du code :
// 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."; }
Ce code mis à jour utilise des instructions préparées avec PDO pour améliorer la sécurité et l'efficacité. Il utilise également l'Opérateur de fusion NULL (??) pour attribuer des valeurs par défaut aux variables lorsqu'elles sont nulles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!