Maison > base de données > tutoriel mysql > le corps du texte

Comment convertir du code MySQL en une instruction préparée par PDO : un guide étape par étape

Barbara Streisand
Libérer: 2024-11-06 01:12:02
original
328 Les gens l'ont consulté

How to Convert MySQL Code to a PDO Prepared Statement: A Step-by-Step Guide

Convertir le code MySQL en instruction PDO : un guide étape par étape

Comprendre le problème

Vous souhaitez remplacer la première instruction if par une instruction PDO pour récupérer l'e-mail d'un utilisateur de la base de données en utilisant son identifiant.

Connexion avec PDO

Pour utiliser PDO, vous devez d'abord établir une connexion à la base de données MySQL :

$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
]);
Copier après la connexion

Mise à jour du code

Relevés préparés

Les déclarations préparées offrent une sécurité et une lisibilité accrues, en particulier lorsque vous travaillez avec la saisie de l'utilisateur.

$sql = "SELECT email FROM users WHERE u_id = ?";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $id, PDO::PARAM_INT);
$stmt->execute();
$email = $stmt->fetchColumn();
Copier après la connexion

Code mis à jour

Le code mis à jour avec PDO et les déclarations préparées :

$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";
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!