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:
- Você obterá o resultado de
mysql_query($query)para a primeira consulta somente na$queryfornecida . Você pode tentar concatenar131072com65536para obter vários resultados. - Isso não funcionará em PHP <4.3.0
- 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.