sql >> Database >  >> RDS >> Mysql

Hoe meerdere mysql-query's samen in PHP uit te voeren?

mysql_query() stuurt een unieke zoekopdracht (meerdere zoekopdrachten worden niet ondersteund) .Dat is het standaardgedrag. Hier is echter een bypass voor.

De resultaatcode van alleen de eerste query wordt echter gegeven als uitvoer van mysql_query() als je dit doet.

Je hoeft alleen vlag 65536 door te geven als de 5e parameter van mysql_connect. de vlag is gedefinieerd in MySQL Client-vlaggen .

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

Dus bewerk uw mysql_connect() code die hiermee overeenkomt:

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

Waarschuwing:

  1. Je krijgt het resultaat van mysql_query($query) voor de eerste zoekopdracht alleen in de gegeven $query . Je kunt proberen 131072 aan elkaar te koppelen met 65536 voor het verkrijgen van meerdere resultaten.
  2. Dit werkt niet op PHP <4.3.0
  3. Dit werkt niet als sql.safe_mode is ingesteld als 1 in php.ini

Een ander alternatief is het gebruik van mysqli in plaats van mysql bibliotheek. Het ondersteunt $mysqli->multi_query() en geeft uitvoer binnen een array voor elke query.



  1. Azure-automatiseringsmethoden

  2. Selecteer de rijen die zojuist zijn ingevoegd

  3. MySQL LOG2() Functie – Retourneer de Base-2 logaritme van een waarde

  4. JOOQ Tijdstempel precisie op query