English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico PHP

Tutorial avançado PHP

PHP & MySQL

Manual de referência PHP

Uso e exemplo da função mysqli_multi_query() no PHP

PHP MySQLi Referência

A função mysqli_multi_query() executa uma ou mais consultas para o banco de dados. As consultas múltiplas são separadas por ponto-e-vírgula.

Definição e uso

mysqli_multi_query()A função aceita como um dos parâmetros uma string que representa a consulta e a executa no banco de dados./Execute a consulta fornecida.

Execute uma sentença SQL, ou várias sentências SQL separadas por ponto-e-vírgula.
Para obter o primeiro conjunto de resultados da execução, use as funções mysqli_use_result() ou mysqli_store_result(). Para ler os conjuntos de resultados subsequentes, use as funções mysqli_more_results() e mysqli_next_result().

Sintaxe

mysqli_multi_query($con, $query)

Parâmetro

NúmeroParâmetros e descrição
1

con(obrigatório)

Este é um objeto que representa a conexão com o MySQL Server.

2

query(obrigatório)

Esta é uma string que representa a consulta a ser executada.

3

mode(opcional)

Este é um valor inteiro que representa o modo de resultado. Você pode usarMYSQLI_USE_RESULT ou MYSQLI_STORE_RESULT passado como valor para este parâmetro.

Retorno

 Se a primeira sentença SQL falhar, retorna FALSE. Se for executar várias sentências SQL em lote, é necessário chamar primeiro a função mysqli_next_result() para obter as informações de erro das subsequentes sentências.

Versão do PHP

Esta função foi introduzida inicialmente na versão do PHP5introduzido e pode ser usado em todas as versões mais recentes.

Exemplo Online

Os seguintes exemplos demonstrammysqli_multi_query()Uso da função (estilo procedimental)-

<?php
   //Estabelecer conexão
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT); insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)";
   mysqli_multi_query($con, $query);
   print("Dado adicionado......");
   //Fechar conexão
   mysqli_close($con);
?>

Resultado de Saída

Dados adicionados......

Se você observar o conteúdo da tabela no banco de dados, verá os registros inseridos, conforme exemplo a seguir:

mysql> select * from players;
+------------+-----------+-------------+
| First_Name | Last_Name | Country     |
+------------+-----------+-------------+
| Shikhar | Dhawan | India |
| Jonathan | Trott | South Africa |
+------------+-----------+-------------+
2 linhas no conjunto (0,00 seg)

Exemplo Online

Na forma orientada a objetos, a sintaxe dessa função é$con-> multi_query();。Aqui está um exemplo de estilo orientado a objetos para esta função;

<?php
   $con = new mysqli("localhost", "root", "password", "mydb");
   $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT); insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)";
   //Inserir registro na tabela players
   $con-> multi_query($query);
   print("Dados criados......");
   //Fechar conexão
   $res = $con -> close();
?>

Resultado de Saída

Dados adicionados......

Exemplo Online

Abaixo está um exemplo de criação de uma tabela e uso demysqli_multi_query()Executando consultas uma após a outra para preenchê-lo-

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   mysqli_multi_query($con, "CREATE TABLE IF NOT EXISTS my_team(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
   print("Tabela criada ..."."\n");
   //Inserir registro no banco de dados my_team
   mysqli_multi_query($con, "insert into my_team values(")1, 'Shikhar', 'Dhawan', 'Delhi', 'India')");
   mysqli_multi_query($con, "insert into my_team values(")2, 'Jonathan', 'Trott', 'Cape Town', 'South Africa')");
   mysqli_multi_query($con, "insert into my_team values(")3, 'Kumara', 'Sangakkara', 'Matale', 'Sri Lanka')");
   mysqli_multi_query($con, "insert into my_team values(")4, 'Virat', 'Kohli', 'Delhi', 'India')");
   print("Inserir registro ..."."\n");
   //Fechar conexão
   mysqli_close($con);
?>

Resultado de Saída

Tabela criada ...
Inserir registros ...

Exemplo Online

Supondo que já tenhamos criado uma tabela Players e preenchido ela, conforme o exemplo a seguir-

CREATE TABLE Players (Name VARCHAR(255), Idade INT, Score INT);
insert into Players values('Dhavan', 33, 90),('Rohit', 28, 26),('Kohli', 25, 50);

O seguinte exemplo vem demysqli_multi_queryFunção de Recuperação de Resultados-

<?php
   //Estabelecer conexão
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //Executar múltiplas consultas
   $query = "SELECT * FROM players;CREATE TABLE Test (Name VARCHAR(255), Idade INT);insert into Test values('Raju', 25),('Rahman', 30),('Ramani', 22);SELECT * FROM Test";
   $res = mysqli_multi_query($con, $query);
   if ($res) {
      do {
         if ($result = mysqli_use_result($con)) {
            while ($row = mysqli_fetch_row($result)) {
               print("Nome: ".$row[0]."\n");
               print("Idade: ".$row[1]."\n");
            }
            mysqli_free_result($result);
         }
         if (mysqli_more_results($con)) {
            print("\n");
         }
      } while (mysqli_next_result($con));
   }
   mysqli_close($con);
?>

Resultado de Saída

Nome: Dhavan
Idade: 33
Nome: Rohit
Idade: 28
Nome: Kohli
Idade: 25
Nome: Raju
Idade: 25
Nome: Rahman
Idade: 30
Nome: Ramani
Idade: 22

PHP MySQLi Referência