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

PHP базовый курс

PHP продвинутый курс

PHP & MySQL

PHP справочник

PHP mysqli_multi_query() пример использования и пример

PHP MySQLi руководство

Функция mysqli_multi_query() выполняет один или несколько запросов к базе данных. Запросы разделены точками с запятой.

Определение и использование

mysqli_multi_query()Функция принимает в качестве одного из параметров строку, представляющую запрос, и выполняет/выполняет данное запрос на базе данных.

Выполните SQL-запрос или несколько SQL-запросов, разделенных точками с запятой.
Чтобы получить первый результат набора результатов выполнения, пожалуйста, используйте функции mysqli_use_result() или mysqli_store_result(). Для чтения последующих наборов результатов используйте функции mysqli_more_results() и mysqli_next_result().

Синтаксис

mysqli_multi_query($con, query)

Параметр

НомерПараметры и описание
1

con(обязателен)

Это объект подключения к MySQL Server.

2

query(обязателен)

Это строка, представляющая собой выполняемый запрос.

3

mode(опционально)

Это целочисленный значение, представляющее собой результатовый режим. Вы можете передатьMYSQLI_USE_RESULT или MYSQLI_STORE_RESULT Переменная передается в качестве значения этому параметру.

Возвратное значение

 Если первый SQL-запрос失败了, возвращает FALSE. Если выполняется пакетный запрос SQL, необходимо сначала вызвать функцию mysqli_next_result(), чтобы получить информацию об ошибках для последующих запросов.

Версия PHP

Эта функция была введена в PHP версии 5 и может использоваться во всех более поздних версиях.

Онлайн пример

Ниже приведен пример:mysqli_multi_query()Использование функции (стиль面向 процессов)-

<?php
   //Установление соединения
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $query = "Создать таблицу Test (Name VARCHAR(255), AGE INT); insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)";
   mysqli_multi_query($con, $query);
   print("Данные добавлены......");
   //Закрытие подключения
   mysqli_close($con);
?>

Результат вывода

Данные добавлены......

Если вы посмотрите на содержимое таблицы базы данных, вы можете увидеть вставленные записи, как показано ниже:

mysql> select * from players;
+------------+-----------+-------------+
| First_Name | Last_Name | Country  |
+------------+-----------+-------------+
| Shikhar  | Dhawan  | India  |
| Jonathan  | Trott  | SouthAfrica |
+------------+-----------+-------------+
2 строк в наборе (0.00 сек)

Онлайн пример

В стиле面向 объектов синтаксис функции выглядит следующим образом:$con->multi_query();。Вот пример функции в стиле面向对象的 пример;

<?php
   $con = new mysqli("localhost", "root", "password", "mydb");
   $query = "Создать таблицу Test (Name VARCHAR(255), AGE INT); insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)";
   //Вставка записей в таблицу players
   $con->multi_query($query);
   print("Data Created......");
   //Закрытие подключения
   $res = $con -> close();
?>

Результат вывода

Данные добавлены......

Онлайн пример

Ниже приведён пример создания таблицы и использованияmysqli_multi_query()Функция за функцией выполняет запросы для её заполнения-

<?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("Таблица создана..."."\n");
   //Вставка записей в таблицу 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', 'CapeTown', 'SouthAfrica')");
   mysqli_multi_query($con, "insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')");
   mysqli_multi_query($con, "insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')");
   print("Вставка записей..."."\n");
   //Закрытие подключения
   mysqli_close($con);
?>

Результат вывода

Таблица создана...
Вставка записей...

Онлайн пример

Предположим, что мы уже создали таблицу Players в базе данных и запустили её, как показано ниже-

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

Следующий пример изmysqli_multi_queryФункция поиска результатов

<?php
   //Установление соединения
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //Выполнение множественных запросов
   $query = "SELECT * FROM players;CREATE TABLE Test (Name VARCHAR(255), Age 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("Имя: ".$row[0]."\n");
               print("Возраст: ".$row[1]."\n");
            }
            mysqli_free_result($result);
         }
         if (mysqli_more_results($con)) {
            print("\n");
         }
      } while (mysqli_next_result($con));
   }
   mysqli_close($con);
?>

Результат вывода

Имя: Дхаван
Возраст: 33
Имя: Рохит
Возраст: 28
Имя: Кохли
Возраст: 25
Имя: Рао
Возраст: 25
Имя: Рахман
Возраст: 30
Имя: Рамани
Возраст: 22

PHP MySQLi руководство