Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да изпълним множество mysql заявки заедно в PHP?

mysql_query() изпраща уникална заявка (няколко заявки не се поддържат) .Това е поведението по подразбиране. Въпреки това има байпас за това.

Въпреки това само резултатният код на първата заявка ще бъде даден като изход на mysql_query() ако направите това.

Просто трябва да подадете флаг 65536 като 5-ти параметър на mysql_connect. флагът е дефиниран в Клиентски флагове на MySQL .

#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */

Така че редактирайте своя mysql_connect() код, който да съответства на това:

mysql_connect($host, $username, $password, false, 65536);

Предупреждение:

  1. Ще получите резултата от mysql_query($query) само за първото запитване в дадената $query . Можете да опитате да свържете 131072 с 65536 за получаване на множество резултати.
  2. Това няма да работи на PHP <4.3.0
  3. Това няма да работи, ако sql.safe_mode е зададено като 1 в php.ini

Друга алтернатива ще бъде използването на mysqli вместо mysql библиотека. Поддържа $mysqli->multi_query() и дава резултат в рамките на масив за всяка заявка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Архивиране на MySQL с условие WHERE

  2. Как да автоматизирате миграцията (схема и данни) за PHP/MySQL приложение

  3. Групирайте множество mysql резултата по стойност на една колона

  4. Множество WHERE с LIMIT MySQL

  5. Най-добрият начин да намерите последния вмъкнат идентификатор в mysql с помощта на php