Когда и как использовать несколько MySQL-запросов с PHP (PDO)

Каковы преимущества использования нескольких запросов MySQL в инструкции, кроме как свести к минимуму код.

Как выполнять, извлекать и отображать результаты нескольких запросов MySQL, отправленных в одном выражении с использованием PHP (и предпочтительно PDO).

Related of "Когда и как использовать несколько MySQL-запросов с PHP (PDO)"

Независимо от того, какую базу данных вы используете, может быть более эффективным размещать несколько запросов в одном выражении. Если вы выполняете запросы отдельно, вы должны сделать вызов в базу данных по сети (или, по крайней мере, между процессами, если на том же компьютере), получить к ней подключение (в том числе и авторейтинг), передать запрос, вернуть resultset и освободить соединение для каждого запроса.

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

Так, например, если вы объедините два запроса в один, вы сохранили все эти дополнительные вызовы назад и вперед для второго запроса. Чем больше запросов вы совмещаете, тем более эффективным может стать ваше приложение.

В другом примере многие приложения заполняют списки (например, для dropdownlists), когда они запускаются. Это может быть несколько запросов. Выполнение их всех в одном вызове может ускорить время запуска.

mysql_query () не поддерживает несколько запросов. Однако есть некоторые обходные пути:

http://www.dev-explorer.com/articles/multiple-mysql-queries
http://php.net/function.mysql-query

Сегодня я занимался некоторыми исследованиями и наткнулся на эту тему. Ни один из приведенных выше ответов не дает жизнеспособного решения этой простой проблемы.

Используя подход OO, вы можете выполнять несколько запросов запроса в одном соединении с помощью метода multi_query ().

$db_connection->multi_query($query); 

Запросы должны быть хорошо сформированы и разделены точкой с запятой ->;

в руководстве по PHP для получения более подробной информации о том, как обрабатывать данные SELECT

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

 select somecol, @somevar := group_concat( distinct somecol2 separator '|') from sometbl where somecol LIKE "fueh" group by somecol; select somecol2 from sometbl where somecol LIKE "nyan" and vc_wp regexp concat( '(', @somevar, ')' ) order by somecol;