Lorsque les instructions préparées sont essentielles
Alors que vous utilisiez initialement mysql_connect et mysql_query pour gérer les interactions avec la base de données, des problèmes liés à l'injection SQL vous ont incité à enquêter déclarations préparées. Cependant, une idée fausse courante surgit : les déclarations préparées sont-elles uniquement nécessaires pour protéger les entrées de l'utilisateur ?
Pourquoi devriez-vous toujours utiliser des déclarations préparées
La réponse est retentissante : utilisez toujours des déclarations préparées déclarations, sans exception. Même si vous ne faites pas face à des risques de piratage perceptibles en utilisant mysql_num_rows, l'utilisation d'instructions préparées est supérieure pour les raisons suivantes :
Comment fonctionnent les instructions préparées
Les instructions préparées transmettent la requête et les données séparément, permettant la base de données pour les exécuter en une seule transaction. Cette protection est bien plus robuste que la concaténation des requêtes avec des données, comme c'était le cas avec les fonctions mysql_* et les bases de données rendues sensibles à l'injection SQL.
Utilisation d'instructions préparées avec des bibliothèques PHP
Avec PDO, vous pouvez utiliser le code illustratif suivant pour utiliser les instructions préparées :
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?,?)"); $stmt->execute([$name, $value]);
Avec MySQLi, le le code est le suivant :
$dbh->execute_query("INSERT INTO REGISTRY (name, value) VALUES (?,?)", [$name, $value]);
Ressources supplémentaires
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!