mysqli::multi_query
mysqli_multi_query
(PHP 5)
mysqli::multi_query -- mysqli_multi_query — Realiza una consulta a la base de datos
Descripción
Estilo orientado a objetos
$query
)Estilo 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().
Parámetros
-
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.
Valores devueltos
Devuelve FALSE si la primera sentencia falló.
Para obtener el resto de errores de otras sentencias debe llamarse antes a
mysqli_next_result().
Ejemplos
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ían algo similar a:
my_user@localhost ----------------- Amersfoort Maastricht Dordrecht Leiden Haarlemmermeer
Ver también
- mysqli_query() - Realiza una consulta a la base de datos
- mysqli_use_result() - Inicia la recuperación de un conjunto de resultados
- mysqli_store_result() - Transfiere un conjunto de resulados de la última consulta
- mysqli_next_result() - Prepara el siguiente resultado de multi_query
- mysqli_more_results() - Comprueba si hay más resultados de una multi consulta