Maison > développement back-end > tutoriel php > Comment puis-je insérer efficacement et en toute sécurité de nombreuses lignes dans MySQLi à l'aide de PHP ?

Comment puis-je insérer efficacement et en toute sécurité de nombreuses lignes dans MySQLi à l'aide de PHP ?

Linda Hamilton
Libérer: 2024-12-13 18:08:11
original
734 Les gens l'ont consulté

How Can I Efficiently and Securely Insert Many Rows into MySQLi Using PHP?

Insertion multi-lignes efficace et sécurisée dans MySQLi

Dans le développement PHP, l'insertion de nombreuses lignes dans une base de données MySQL de manière efficace et sécurisée peut être un défi. Pour résoudre ce problème, il est essentiel d'utiliser des techniques qui empêchent l'injection SQL tout en préservant les performances.

Une approche courante consiste à utiliser des instructions préparées avec liaison de paramètres. Cependant, dans les cas où un grand nombre de lignes (par exemple, 2 000) doivent être insérées, cette approche peut être lente.

Une solution plus efficace consiste à exploiter les transactions de base de données. Les transactions vous permettent de regrouper plusieurs opérations et de les exécuter comme une seule unité atomique. En lançant une transaction, vous pouvez insérer plusieurs lignes à l'aide d'une seule instruction préparée, réduisant ainsi la surcharge associée à l'exécution d'insertions distinctes.

Pour illustrer cela, voici un extrait de code optimisé :

$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");
Copier après la connexion

Ce code initialise une transaction, prépare l'instruction d'insertion et lie le paramètre. Ensuite, il parcourt le tableau de valeurs, en exécutant l'instruction d'insertion pour chaque valeur de la transaction. Enfin, il valide la transaction, finalisant toutes les insertions.

Par rapport à la méthode originale, cette approche améliore considérablement les performances. Dans un test comportant 10 000 itérations, l’insertion basée sur les transactions n’a pris que 2 secondes, alors que l’approche originale prenait 226 secondes. Cela représente une augmentation massive de la vitesse de deux ordres de grandeur.

En tirant parti des transactions et des instructions préparées, vous pouvez insérer efficacement et en toute sécurité plusieurs lignes dans une base de données MySQL en PHP, garantissant à la fois l'intégrité des données et l'optimisation des performances.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal