Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como executar várias consultas mysql juntas em PHP?


mysql_query() envia uma consulta exclusiva (não há suporte para várias consultas) .Esse é o comportamento padrão. No entanto, há um desvio para isso.

No entanto, apenas o código de resultado da primeira consulta será dado como saída de mysql_query() se você fizer isto.

Você só precisa passar o sinalizador 65536 como 5º parâmetro do mysql_connect. o sinalizador é definido em sinalizadores do cliente MySQL .
#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */

Então edite seu mysql_connect() código para corresponder a isso:
mysql_connect($host, $username, $password, false, 65536);

Aviso:
  1. Você obterá o resultado de mysql_query($query) para a primeira consulta somente na $query fornecida . Você pode tentar concatenar 131072 com 65536 para obter vários resultados.
  2. Isso não funcionará em PHP <4.3.0
  3. Isso não funcionará se sql.safe_mode é definido como 1 em php.ini

Outra alternativa será usar mysqli em vez de mysql biblioteca. Ele suporta $mysqli->multi_query() e dá saída dentro de uma matriz para cada consulta.