Maison >développement back-end >tutoriel php >Pourquoi ne puis-je pas exécuter deux appels « mysqli_query() » simultanément dans MySQL ?

Pourquoi ne puis-je pas exécuter deux appels « mysqli_query() » simultanément dans MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-07 01:50:11586parcourir

Why Can't I Run Two `mysqli_query()` Calls Simultaneously in MySQL?

Pourquoi deux requêtes mysqli ne peuvent-elles pas être exécutées simultanément ?

Dans MySQL, l'exécution de plusieurs requêtes en un seul appel nécessite l'utilisation de mysqli_multi_query (). Tenter d'exécuter deux requêtes à l'aide de mysqli_query() entraînera l'échec de la deuxième requête.

Solution : mysqli_multi_query()

Pour résoudre ce problème, la bonne méthode à utiliser est mysqli_multi_query(). Il prend une chaîne de requêtes séparées par des points-virgules comme entrée.

Exemple :

$mysqli = new mysqli($host, $user, $password, $database);

// Queries to be executed
$query = "INSERT INTO images (project_id, user_id, image_name, ...) VALUES (...);";
$query .= "INSERT INTO images_history (project_id, user_id, image_name, ...) VALUES (...);";

// Execute queries using mysqli_multi_query()
$result = mysqli_multi_query($mysqli, $query);

// Handle results
if ($result) {
    // Process results using mysqli_store_result() and mysqli_next_result()
} else {
    // Handle error (if any)
}

Remarque :

  • mysqli_query() n'exécutera pas plusieurs requêtes pour des raisons de sécurité (injections SQL prévention).
  • mysqli_store_result() doit être utilisé après mysqli_multi_query() pour récupérer les ensembles de résultats.
  • mysqli_error() doit être vérifié pour s'assurer que les requêtes INSERT ont réussi ( même s'ils n'ont aucun ensemble de résultats).

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!

Déclaration:
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