Maison > Article > base de données > Comment remplacer les fonctions `mysql_*` obsolètes par des PDO et des instructions préparées pour des interactions sécurisées avec la base de données ?
Question :
Comment puis-je remplacer les fonctions mysql_* obsolètes par PDO et instructions préparées pour stocker et récupérer en toute sécurité des données d'une base de données ?
Réponse :
$hostname = '*host*'; $username = '*user*'; $password = '*pass*'; $database = '*database*'; $dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
$username = $_POST['username']; $email = $_POST['email']; $stmt = $dbh->prepare("INSERT INTO `users` (username, email) VALUES (?, ?)"); $stmt->bindParam(1, $username, PDO::PARAM_STR); $stmt->bindParam(2, $email, PDO::PARAM_STR); $stmt->execute();
Le paramètre de longueur n'est pas requis pour PDO::PARAM_STR. Cependant, si vous avez une limite maximale de caractères pour le champ dans votre table de base de données, vous pouvez la spécifier après PDO::PARAM_STR comme indiqué ci-dessous :
$stmt->bindParam(1, $username, PDO::PARAM_STR, 255);
$user_id = $_GET['id']; $stmt = $dbh->prepare("SELECT * FROM `users` WHERE `id` = ?"); $stmt->bindParam(1, $user_id, PDO::PARAM_INT);
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!