Maison > développement back-end > tutoriel php > Comment puis-je insérer efficacement 2 000 lignes dans MySQL tout en empêchant l'injection SQL et le débordement de pile ?

Comment puis-je insérer efficacement 2 000 lignes dans MySQL tout en empêchant l'injection SQL et le débordement de pile ?

Patricia Arquette
Libérer: 2024-12-13 10:23:10
original
556 Les gens l'ont consulté

How Can I Efficiently Insert 2000 Rows into MySQL While Preventing SQL Injection and Stack Overflow?

Insertion groupée efficace dans mysqli : prévenir l'injection SQL et les débordements de pile

L'insertion de gros volumes de données dans une base de données MySQL de manière sécurisée et performante est cruciale pour de nombreuses applications. Cette question explore les techniques permettant d'insérer efficacement 2 000 lignes tout en garantissant la protection contre les injections SQL.

L'extrait de code fourni parcourt un tableau de valeurs, préparant et exécutant une requête distincte pour chaque insertion. Bien qu'elle soit sécurisée contre les injections SQL, cette approche peut s'avérer inefficace et entraîner des débordements de pile.

Solution améliorée avec les transactions :

Une solution plus optimale implique l'utilisation de transactions MySQL. En regroupant les insertions au sein d'une seule transaction, la base de données peut optimiser le processus et réduire considérablement le temps d'exécution.

$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

Comparaison des performances :

Cette technique fournit un amélioration substantielle de la vitesse, comme le démontrent les tests de référence :

  • Sans transaction : 226 secondes
  • Avec transaction : 2 secondes

Cela représente une augmentation impressionnante de la vitesse de deux ordres de grandeur pour le scénario de test.

En tirant parti des transactions, vous pouvez insérer efficacement données en masse tout en maintenant la sécurité des injections SQL et en évitant 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!

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