Mysql
 sql >> Database >  >> RDS >> Mysql

Come eseguire più query MySQL insieme in PHP?

mysql_query() invia una query univoca (non sono supportate più query) .Questo è il comportamento predefinito. Tuttavia c'è un bypass per questo.

Tuttavia il codice del risultato della prima query da solo verrà fornito come output di mysql_query() se lo fai.

Devi solo passare il flag 65536 come 5° parametro di mysql_connect. il flag è definito in flags del client MySQL .

#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */

Quindi modifica il tuo mysql_connect() codice che corrisponda a questo:

mysql_connect($host, $username, $password, false, 65536);

Avviso:

  1. Otterrai il risultato di mysql_query($query) per la prima query solo nel dato $query . Puoi provare a concatenare 131072 con 65536 per ottenere più risultati.
  2. Questo non funzionerà su PHP <4.3.0
  3. Questo non funzionerà se sql.safe_mode è impostato come 1 in php.ini

Un'altra alternativa sarà usare mysqli invece di mysql biblioteca. Supporta $mysqli->multi_query() e fornisce un output all'interno di un array per ogni query.