Maison >développement back-end >tutoriel php >Comment puis-je exécuter plusieurs requêtes MySQL simultanément ?

Comment puis-je exécuter plusieurs requêtes MySQL simultanément ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-24 00:10:20596parcourir

How Can I Execute Multiple MySQL Queries Simultaneously?

Pourquoi ne puis-je pas exécuter plusieurs requêtes MySQLi simultanément ?

Comme vous l'avez remarqué, tenter d'exécuter deux requêtes MySQL distinctes en utilisant des requêtes consécutives Les appels à mysqli_query() entraîneront l'échec de la deuxième requête. Ce comportement est dû à des mesures de sécurité.

mysqli_multi_query() à la rescousse

Heureusement, mysqli fournit la fonction mysqli_multi_query() spécialement conçue pour exécuter plusieurs requêtes en une seule fois. appel à la base de données.

Exemple Code

Voici un exemple d'utilisation de mysqli_multi_query() :

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

// Create query string with multiple queries separated by ;
$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');";

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

// Retrieve results
if ($result) {
    do {
        $result = mysqli_store_result($mysqli);
    } while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
} else {
    echo "First query failed: " . mysqli_error($mysqli);
}

Considérations supplémentaires :

  • mysqli_store_result( ) renverra FALSE pour les requêtes sans jeux de résultats, telles que les requêtes INSERT. Vérifiez mysqli_error() pour confirmer la réussite de l'exécution.
  • Notez l'utilisation de ";" comme séparateur entre les requêtes.

En utilisant mysqli_multi_query(), vous pouvez exécuter efficacement plusieurs requêtes en un seul appel à la base de données, évitant ainsi le deuxième problème d'échec de la requête.

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