English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция 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 версии 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