mysql_query() envía una consulta única (no se admiten consultas múltiples) .Ese es el comportamiento predeterminado. Sin embargo, hay un bypass para esto.
Sin embargo, el código de resultado de la primera consulta solo se dará como resultado de mysql_query() si haces esto.
Solo tiene que pasar el indicador 65536 como el quinto parámetro de mysql_connect. el indicador se define en indicadores de cliente MySQL .
#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */
Así que edite su mysql_connect() código para que coincida con esto:
mysql_connect($host, $username, $password, false, 65536);
Advertencia:
- Obtendrá el resultado de
mysql_query($query)para la primera consulta solo en el$querydado . Puedes intentar concatenar131072con65536para obtener múltiples resultados. - Esto no funcionará en PHP <4.3.0
- Esto no funcionará si
sql.safe_modese establece como 1 en php.ini
Otra alternativa será usar mysqli en lugar de mysql biblioteca. Es compatible con $mysqli->multi_query() y da salida dentro de una matriz para cada consulta.