Insertion efficace de plusieurs lignes dans MySQLi avec atténuation des injections SQL
L'insertion d'un grand nombre de lignes dans une base de données MySQL avec PHP et MySQLi nécessite une technique à la fois sécurisée et efficace. Éviter les injections SQL lors de la gestion d'un tel volume de données peut être difficile.
Solution
Pour résoudre ce problème, envisagez d'utiliser une transaction pour regrouper les opérations d'insertion. Cette approche consiste à déplacer les opérations de préparation et de liaison en dehors de la boucle, comme indiqué ci-dessous :
$array = array("array", "with", "about", "2000", "values"); $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $stmt->close(); $mysqli->query("COMMIT");
Avantages de la transaction
Implémentation
N'oubliez pas d'exécuter les requêtes START TRANSACTION et COMMIT en dehors de la boucle PHP pour garantir que l'intégralité l’opération est traitée comme une seule transaction. Cette approche combine la sécurité des instructions préparées avec l'efficacité des insertions groupées tout en atténuant les débordements de pile.
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!