PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mysqli_next_result> <mysqli_more_results
Last updated: Fri, 22 Aug 2008

view this page in

mysqli_multi_query

mysqli->multi_query()

(PHP 5)

mysqli_multi_query -- mysqli->multi_query()Performs a query on the database

Descrição

Modo procedural:

bool mysqli_multi_query ( mysqli $link , string $query )

Modo orientado a objeto (método):

mysqli
bool multi_query ( string $query )

Executa um ou múltiplas queries que são concatenadas com ponto-e-vírgula.

Para recuperar o conjunto de resultado da primeira query, você pode usar mysqli_use_result() ou mysqli_store_result(). Todos os resultados de queries subseqüentes podem ser processados usando mysqli_more_results() e mysqli_next_result().

Parâmetros

link

Apenas para estilo de procedimento: Um identificador de conexão retornado por mysqli_connect() or mysqli_init()

query

A query, como uma string.

Valor Retornado

Retorna FALSE se o primeiro comando falhar. Para recuperar erros subseqüentes de outros comandos, você terá que chamar mysqli_next_result() primeiro.

Exemplos

Exemplo #1 Modo orientado a objeto

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

$query  "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        
/* store first result set */
        
if ($result $mysqli->store_result()) {
            while (
$row $result->fetch_row()) {
                
printf("%s\n"$row[0]);
            }
            
$result->free();
        }
        
/* print divider */
        
if ($mysqli->more_results()) {
            
printf("-----------------\n");
        }
    } while (
$mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Exemplo #2 Modo procedural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

$query  "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link$query)) {
    do {
        
/* store first result set */
        
if ($result mysqli_store_result($link)) {
            while (
$row mysqli_fetch_row($result)) {
                
printf("%s\n"$row[0]);
            }
            
mysqli_free_result($result);
        }
        
/* print divider */
        
if (mysqli_more_results($link)) {
            
printf("-----------------\n");
        }
    } while (
mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

O exemplo acima irá imprimir algo similar a:

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


add a note add a note User Contributed Notes
mysqli_multi_query
jparedes at gmail dot com
27-Aug-2008 06:05
It's very important that after executing mysqli_multi_query you have first process the resultsets before sending any another statement to the server, otherwise your
socket is still blocked.

Please note that even if your multi statement doesn't contain SELECT queries, the server will send result packages containing errorcodes (or OK packet) for single statements.

mysqli_next_result> <mysqli_more_results
Last updated: Fri, 22 Aug 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites