(PHP 5, PHP 7)
mysqli::multi_query -- mysqli_multi_query — Realiza una consulta a la base de datos
Estilo orientado a objetos
$query
) : boolEstilo por procedimientos
Ejecuta una o múltiples consultas concatenadas por puntos y comas.
Para obtener el juego de resultados de la primera consulta se puede usar mysqli_use_result() o mysqli_store_result(). El resto de resultados de consultas se pueden obtener usando mysqli_more_results() y mysqli_next_result().
link
Sólo estilo por procediminetos: Un identificador de enlace devuelto por mysqli_connect() o mysqli_init()
query
Consulta, en forma de string.
Los datos dentro de la consulta debe estar correctamente escapados.
Devuelve FALSE
si la primera sentencia falló.
Para obtener el resto de errores de otras sentencias debe llamarse antes a
mysqli_next_result().
Ejemplo #1 Ejemplo de mysqli::multi_query()
Estilo orientado a objetos
<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "world");
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";
/* ejecutar multi consulta */
if ($mysqli->multi_query($query)) {
do {
/* almacenar primer juego de resultados */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
/* mostrar divisor */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}
/* cerrar conexión */
$mysqli->close();
?>
Estilo por procedimientos
<?php
$link = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "world");
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";
/* ejecutar multi consulta */
if (mysqli_multi_query($link, $query)) {
do {
/* almacenar primer juego de resultados */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}
/* mostrar divisor */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));
}
/* cerrar conexión */
mysqli_close($link);
?>
El resultado de los ejemplos sería algo similar a:
my_user@localhost ----------------- Amersfoort Maastricht Dordrecht Leiden Haarlemmermeer