Maison > développement back-end > tutoriel php > Comment puis-je exécuter plusieurs instructions INSERT simultanément dans MySQL à l'aide de mysqli ?

Comment puis-je exécuter plusieurs instructions INSERT simultanément dans MySQL à l'aide de mysqli ?

Barbara Streisand
Libérer: 2024-12-07 19:50:14
original
523 Les gens l'ont consulté

How Can I Execute Multiple INSERT Statements Simultaneously in MySQL Using mysqli?

Requêtes mysqli multiples : exécution simultanée d'instructions INSERT

Problème d'origine :

Tentatives d'exécution deux instructions INSERT utilisant mysqli_query() consécutivement entraînent l'échec de la deuxième requête. Ce problème provient des mesures de sécurité de MySQL, qui empêchent l'exécution de plusieurs requêtes en un seul appel.

Solution : mysqli_multi_query()

Pour exécuter plusieurs requêtes en un seul appel, il faut utiliser la fonction mysqli_multi_query() function :

$query  = "INSERT INTO images (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName');";
$query .= "INSERT INTO images_history (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name, day, month, year) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName', '$day', '$month', '$year');";

$result = mysqli_multi_query($mysqli, $query);
Copier après la connexion

Traitement des résultats de la requête

L'exécution de mysqli_multi_query() renvoie une valeur booléenne. Cependant, il est crucial de récupérer manuellement les résultats de chaque requête à l'aide de mysqli_store_result() et de les parcourir en utilisant mysqli_more_results() et mysqli_next_result() :

while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)) {
    if (($result = mysqli_store_result($mysqli)) === false && mysqli_error($mysqli) != '') {
        echo "Query failed: " . mysqli_error($mysqli);
    }
}
Copier après la connexion

Avantages de mysqli_multi_query()

  • Exécute efficacement plusieurs requêtes en une seule call.
  • Maintient l'intégrité de la base de données en empêchant les interférences dans les requêtes.

Considérations supplémentaires

  • mysqli_store_result() peut renvoyer FALSE pour les requêtes sans résultats (par exemple, instructions INSERT). Utilisez mysqli_error() pour confirmer le succès.
  • Reportez-vous à la documentation de mysqli_multi_query(), mysqli_more_results(), mysqli_next_result() et mysqli_store_result() pour plus de détails.

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