mysqli::multi_query

mysqli_multi_query

(PHP 5, PHP 7)

mysqli::multi_query -- mysqli_multi_queryRealiza una consulta a la base de datos

Descripción

Estilo orientado a objetos

mysqli::multi_query ( string $query ) : bool

Estilo por procedimientos

mysqli_multi_query ( mysqli $link , string $query ) : bool

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ía algo similar a:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Ver también