Maison >développement back-end >tutoriel php >Comment puis-je inclure en toute sécurité des variables PHP dans les instructions MySQL INSERT ?
L'insertion de valeurs dans la table des matières avec une variable PHP dans le cadre de la clause VALUES peut être problématique. Abordons le problème et proposons l'approche correcte.
Assurer une gestion correcte des variables PHP dans les instructions MySQL est crucial. La règle principale est d'utiliser des instructions préparées. Remplacez les variables PHP par des espaces réservés dans votre instruction SQL et suivez ces étapes :
Utilisation de MySQLi :
<?php $type = 'testing'; $reporter = "John"; $description = "whatever"; $sql = "INSERT INTO contents (type, reporter, description) VALUES ('$type', ?, ?)"; $mysqli->execute_query($sql, [$reporter, $description]); ?>
Utilisation de PDO :
<?php $type = 'testing'; $reporter = "John"; $description = "whatever"; $sql = "INSERT INTO contents (type, reporter, description) VALUES ('$type', ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$reporter, $description]); ?>
Pour les parties de requête telles que les mots-clés ou les identifiants (noms de base de données, de table ou de champ), utilisez le filtrage par liste blanche. Cela implique de comparer explicitement la variable PHP à une liste prédéfinie de valeurs autorisées. Si la variable correspond à une valeur autorisée, elle peut être incluse en toute sécurité dans la requête. Sinon, lancez une exception pour une entrée non valide.
Le respect de ces directives garantit la gestion sécurisée et efficace des variables PHP dans les instructions MySQL. L'utilisation d'instructions préparées pour les variables représentant les littéraux de données et le filtrage par liste blanche pour les identifiants garantissent l'intégrité des données et la protection contre les attaques par injection.
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!