(PHP 5)
mysqli_multi_query, mysqli->multi_query() — Exécute une requête MySQL multiple
Style procédural
bool mysqli_multi_query ( mysqli $link, string $query )Style orienté objet (méthode)
class mysqli {Exécute une ou plusieurs requêtes, rassemblées dans le paramètre query par des point-virgules.
Pour lire les résultats de la première requête, vous pouvez utiliser les fonctions mysqli_use_result() et mysqli_store_result() . Tous les autres résultats de requêtes peuvent être atteints avec mysqli_more_results() et mysqli_next_result() .
Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()
La requête, sous la forme d'une chaîne de caractères .
Retourne FALSE uniquement si la première requête échoue. Pour récupérer les sous-séquences d'erreurs issues des autres requêtes, vous devez appeler d'abord la fonction mysqli_next_result() .
Exemple 1679. Style orienté objet
<?php
$mysqli
= new
mysqli
(
"localhost"
,
"my_user"
,
"my_password"
,
"world"
);
/* Vérification de la connexion */
if (
mysqli_connect_errno
()) {
printf
(
"Échec de la connexion : %s\n"
,
mysqli_connect_error
());
exit();
}
$query
=
"SELECT CURRENT_USER();"
;
$query
.=
"SELECT Name FROM City ORDER BY ID LIMIT 20, 5"
;
/* Exécution d'une requête multiple */
if (
$mysqli
->
multi_query
(
$query
)) {
do {
/* sStockage du premier résultat */
if (
$result
=
$mysqli
->
store_result
()) {
while (
$row
=
$result
->
fetch_row
()) {
printf
(
"%s\n"
,
$row
[
0
]);
}
$result
->
close
();
}
/* Affichage d'une séparation */
if (
$mysqli
->
more_results
()) {
printf
(
"-----------------\n"
);
}
} while (
$mysqli
->
next_result
());
}
/* Fermeture de la connexion */
$mysqli
->
close
();
?>
Exemple 1680. Style procédural
<?php
$link
=
mysqli_connect
(
"localhost"
,
"my_user"
,
"my_password"
,
"world"
);
/* Vérification de la connexion */
if (
mysqli_connect_errno
()) {
printf
(
"Échec de la connexion : %s\n"
,
mysqli_connect_error
());
exit();
}
$query
=
"SELECT CURRENT_USER();"
;
$query
.=
"SELECT Name FROM City ORDER BY ID LIMIT 20, 5"
;
/* Exécution d'une requête multiple */
if (
mysqli_multi_query
(
$link
,
$query
)) {
do {
/* Stockage du premier résultat */
if (
$result
=
mysqli_store_result
(
$link
)) {
while (
$row
=
mysqli_fetch_row
(
$result
)) {
printf
(
"%s\n"
,
$row
[
0
]);
}
mysqli_free_result
(
$result
);
}
/* Affichage d'une séparation */
if (
mysqli_more_results
(
$link
)) {
printf
(
"-----------------\n"
);
}
} while (
mysqli_next_result
(
$link
));
}
/* Fermeture de la connexion */
mysqli_close
(
$link
);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
my_user@localhost ----------------- Amersfoort Maastricht Dordrecht Leiden Haarlemmermeer
mysqli_use_result() |
mysqli_store_result() |
mysqli_next_result() |
mysqli_more_results() |