Insertion efficace et sécurisée de plusieurs lignes à l'aide de MySQLi
L'insertion d'un grand nombre de lignes dans une base de données MySQL nécessite à la fois efficacité et sécurité. L'utilisation d'une approche naïve, comme le montre le code PHP fourni, peut entraîner des problèmes de performances et des vulnérabilités d'injection SQL.
Pour répondre à ces problèmes, une solution plus optimale consiste à effectuer les insertions dans une transaction et à déplacer l'instruction. préparation et liaison en dehors de la boucle :
$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");
Cette technique a été testée et démontrée pour améliorer considérablement les performances. Plus précisément, l'insertion de 10 000 enregistrements avec l'approche originale prenait 226 secondes, tandis que la méthode optimisée accomplissait la tâche en seulement 2 secondes. Cela représente une augmentation de l'efficacité de deux ordres de grandeur.
En utilisant des transactions, vous pouvez insérer plusieurs lignes à la fois tout en préservant l'intégrité des données et en assurant la protection contre les injections SQL. Cette approche offre à la fois rapidité et sécurité, ce qui en fait la méthode privilégiée pour insérer efficacement de gros volumes de données dans une base de données MySQL.
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!