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

Comment puis-je exécuter plusieurs requêtes MySQLi simultanément en PHP ?

Linda Hamilton
Libérer: 2024-12-08 02:41:14
original
461 Les gens l'ont consulté

How Can I Execute Multiple MySQLi Queries Simultaneously in PHP?

Requêtes mysqli multiples : comprendre mysqli_multi_query()

Avec MySQLi, exécuter plusieurs requêtes dans une seule requête n'est pas simple. Les tentatives d'exécution d'appels mysqli_query() séparés entraîneront l'exécution de la première requête uniquement. Pour surmonter cette limitation, mysqli_multi_query() fournit une solution permettant d'exécuter plusieurs instructions SQL en une seule fois.

Exemple de mise en œuvre :

Considérez le scénario suivant :

mysqli_query($dblink, "INSERT INTO images ...");
mysqli_query($dblink, "INSERT INTO images_history ...");
Copier après la connexion

Pour exécuter les deux requêtes simultanément, utilisez mysqli_multi_query() :

$mysqli = new mysqli(...);
$query = "INSERT INTO images ...";
$query .= "INSERT INTO images_history ...";

$result = mysqli_multi_query($mysqli, $query);

if ($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);
        }
    }
} else {
    echo "First query failed..." . mysqli_error($mysqli);
}
Copier après la connexion

Considérations clés :

  • mysqli_multi_query() nécessite une chaîne contenant toutes les requêtes séparées par des points-virgules (;).
  • mysqli_store_result() doit être utilisé pour récupérer les résultats de chaque requête. Étant donné que les requêtes INSERT ne renvoient pas de jeux de résultats, recherchez dans mysqli_error() une chaîne vide pour confirmer que l'insertion a réussi.
  • Cette approche est sécurisée car elle empêche les injections SQL présentes lors de l'exécution de plusieurs appels mysqli_query().

Supplémentaire Ressources :

  • [mysqli_multi_query](https://www.php.net/manual/en/mysqli.multi-query.php)
  • [mysqli_more_results]( https://www.php.net/manual/en/mysqli.more-results .php)
  • [mysqli_next_result](https://www.php.net/manual/en/mysqli.next-result.php)
  • [mysqli_store_result](https://www .php.net/manual/en/mysqli.store-result.php)

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 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