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

Comment convertir une instruction MySQLi en PDO en PHP ?

Mary-Kate Olsen
Libérer: 2024-11-06 03:34:02
original
209 Les gens l'ont consulté

How to convert a MySQLi statement to PDO in PHP?

Comment effectuer une conversion SQL avec PDO

Introduction

PDO (objets de données PHP ) fournit une API unifiée pour interagir avec les bases de données en PHP. Il offre une méthode structurée et cohérente pour écrire et exécuter des requêtes SQL. Cet article montre comment convertir la première instruction if du code PHP fourni de l'utilisation de mysqli à l'utilisation de PDO pour l'accès à la base de données.

Mise à jour du code

Pour utiliser PDO dans l'instruction if, commencez par définir les paramètres de connexion à la base de données :

$db_host = "127.0.0.1";
$db_name = "name_of_database";
$db_user = "user_name";
$db_pass = "user_password";

// Create a connection to the MySQL database
$pdo = new PDO(
    "mysql:host={$db_host};dbname={$db_name}",
    $db_user,
    $db_pass,
    [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_EMULATE_PREPARES => FALSE
    ]
);
Copier après la connexion

Ensuite, mettez à jour l'instruction if pour utiliser le PDO préparé déclarations :

if ($id) {
    $sql = "SELECT email FROM users WHERE u_id = ?";
    $query = $pdo->prepare($sql);    // Prepare the query 
    $query->execute([$id]);          // Bind the parameter and execute the query 
    $email = $query->fetchColumn();  // Return the value from the database
}
Copier après la connexion

La méthode fetchColumn() récupère une seule colonne de l'ensemble de résultats.

Considérations supplémentaires

  • Gestion des erreurs : Les exceptions doivent être gérées correctement lorsque vous travaillez avec PDO.
  • Liaison de paramètres : Utilisez des instructions préparées pour éviter les vulnérabilités d'injection SQL.
  • Opérateur de fusion nul : Utilisez l'opérateur de fusion nul (?? ) pour éviter les notifications ou les erreurs lorsque les variables ne sont pas défini.

Code mis à jour complet

$id = $_SESSION['u_id'] ?? NULL;

if ($id) {
    $sql = "SELECT email FROM users WHERE u_id = ?";
    $query = $pdo->prepare($sql);
    $query->execute([$id]);
    $email = $query->fetchColumn();
}

$email = $email ?? "";
$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 (?, ?, ?, ?)";
    $query = $pdo->prepare($sql);
    $query->execute([$id, $email, $optionOne, $optionTwo]);
} else {
    echo "All options must be entered";
}
Copier après la connexion

En convertissant le code pour utiliser PDO, vous améliorez sa sécurité et sa portabilité sur différents systèmes de base de données.

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