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