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$query
fornecida . Você pode tentar concatenar131072
com65536
para 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.