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$query
dado . Puedes intentar concatenar131072
con65536
para obtener múltiples resultados. - Esto no funcionará en PHP <4.3.0
- Esto no funcionará si
sql.safe_mode
se 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.