English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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().
mysqli_multi_query($con, $query)
Número | Parâ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. |
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.
Esta função foi introduzida inicialmente na versão do PHP5introduzido e pode ser usado em todas as versões mais recentes.
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)
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......
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 ...
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