. Выполнение множественных запросов в MySQLi | Makarou.com - когда сайты превращаются в бизнес

Выполнение множественных запросов в MySQLi

Выполнение множественных запросов в MySQLiПриветствую всех моих читателей. Сегодня мы с вами ознакомимся с замечательной вещью, которая существует в MySQLi – это множественные запросы. Множественные запросы – это выполнение больше одного запроса, в одной php команде, то есть, выполнение 2, 3, 5 и более запросов за один заход. Такой возможности не существует в старом расширении MySQL. Но в MySQLi для осуществления такой возможности существует функция – mysqli_multi_query.

Синтаксис этой функции выглядит следующим образом:

mysqli_multi_query($load, $queries);

Первый параметр – это идентификатор соединения с базой данных. Что это такое,  мы разбирали в прошлой статье. Второй параметр – это запросы, которые вы хотите выполнить. Каждый запрос разделен точкой с запятой, больше на http://makarou.com/mysqli-%e2%80%93-novaya-versiya-rasshireniya-mysql.

Так же хочу вам сказать сразу, что функция mysqli_multi_query в отличие от mysqli_query, не возвращает результат запроса сразу. Функция возвращает наборы данных, для доступа к которым требуется использовать функции. Для доступа к первому набору данных используется функция mysqli_store_result.

Синтаксис этой функции выглядит вот так:


mysqli_store_result($load);

Функция принимает всего 1 параметр – это идентификатор соединения с базой данных. После выполнения, функция возвращает первый набор данных, который можно использовать для выборки  отдельных строк с данными, с помощью функций mysqli_fetch_array и так далее.

Для получения других наборов данных, которые возвращает функция mysqli_multi_query, используются следующие функции. Первая такая функция — это mysqli_more_results, которая осуществляет переход к следующему набору данных.

Синтаксис этой функции выглядит следующим образом:


mysqli_more_results($load);

Функция также принимает всего 1 параметр – это идентификатор соединения с базой данных. После выполнения, функция возвращает булевское значение, которое показывает, есть еще наборы данных или нет. Если есть то, для получения этих данных используется вторая функция, которая называется — mysqli_next_result. Эта функция делает активным или проще сказать текущим, следующий набор данных, для доступа к которому также нужно использовать функцию mysqli_store_result.

Синтаксис  mysqli_next_result выгладит вот так:


mysqli_next_result($load);

Функция принимает тоже всего 1 параметр – идентификатор соединения с базой данных.

Вот небольшой пример, который показывает, как пользоваться функциями, которые мы сегодня обсудили:

$load = mysqli_connect("localhost","user","pass","dbname", 3306);
$multiq= "SELECT username FROM table1 WHERE id='2';SELECT name FROM table2 WHERE id='2'";
mysqli_multi_query($load,$multiq);
$res1=mysqli_store_result($load);
$resp1=mysqli_fetch_array($res1);
echo $resp['username'];
mysqli_free_result($res1);
mysqli_more_results($load);
mysqli_next_result($load);
$res2=mysqli_store_result($load);
$resp2=mysqli_fetch_array($res2);
echo $resp2['name'];
mysqli_free_result('$res2');

Вот и все что могу сказать о множественных запросах. Вроде бы сложного ничего нет, но если у вас есть вопросы, пишите, я обязательно на них отвечу.

Постовой

Все вебмастера знают, что заработок в Интернете на сайте является очень прибыльным делом. Но многие начинающие сайтоведы задаются вопросом, как зарабатывать на своем сайте деньги и делать это как профессионал.

php

Понравился пост? добавь его к себе в закладки:
Хочешь быть всегда в курсе обновлений блога? подписывайся через: