Maison  >  Article  >  base de données  >  Comment convertir une instruction MySQLi en PDO en PHP ?

Comment convertir une instruction MySQLi en PDO en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-06 03:34:02218parcourir

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
    ]
);

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
}

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

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!

Déclaration:
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