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
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!