Maison > base de données > tutoriel mysql > Comment puis-je insérer efficacement et en toute sécurité plusieurs valeurs dans MySQL à l'aide de PHP ?

Comment puis-je insérer efficacement et en toute sécurité plusieurs valeurs dans MySQL à l'aide de PHP ?

Patricia Arquette
Libérer: 2024-12-20 00:28:10
original
748 Les gens l'ont consulté

How Can I Efficiently and Securely Insert Multiple Values into MySQL Using PHP?

Insérer plusieurs valeurs de manière efficace et sécurisée avec PHP et MySQLi

Pour insérer de nombreuses valeurs en toute sécurité, en évitant les injections SQL et les débordements de pile, considérez ce qui suit techniques.

Approche 1 : Boucle améliorée avec préparé Déclaration

Conservez votre approche actuelle mais apportez quelques modifications pour plus d'efficacité :

$stmt = $mysqli->prepare("INSERT INTO table (link) VALUES (?)");
$stmt->bind_param("s", $one);

foreach ($array as $one) {
    $stmt->execute();
}
Copier après la connexion

Cette approche initialise l'instruction préparée en dehors de la boucle, améliorant ainsi les performances.

Approche 2 : approche basée sur les transactions

Pour optimiser davantage, utilisez transactions :

$stmt = $mysqli->prepare("INSERT INTO table (link) VALUES (?)");
$stmt->bind_param("s", $one);

$mysqli->query("START TRANSACTION");
foreach ($array as $one) {
    $stmt->execute();
}
$mysqli->query("COMMIT");
Copier après la connexion

En encapsulant les insertions dans une transaction, le système de mise en mémoire tampon de MySQL est utilisé, ce qui entraîne des améliorations significatives de la vitesse.

Tests et résultats

Dans un test de performances avec 10 000 itérations, l'approche basée sur les transactions s'est avérée considérablement plus rapide :

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

Par conséquent, l'utilisation de l'approche basée sur les transactions est recommandée pour les opérations à grande échelle opérations d'insertion.

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