sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo ejecutar varias consultas mysql juntas en PHP?

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:

  1. Obtendrá el resultado de mysql_query($query) para la primera consulta solo en el $query dado . Puedes intentar concatenar 131072 con 65536 para obtener múltiples resultados.
  2. Esto no funcionará en PHP <4.3.0
  3. 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.