sql >> Databasteknik >  >> RDS >> Mysql

Hur kör man flera mysql-frågor tillsammans i PHP?

mysql_query() skickar en unik fråga (flera frågor stöds inte) .Det är standardbeteendet. Det finns dock en bypass för detta.

Men resultatkoden för den första frågan ensam kommer att ges som utdata från mysql_query() om du gör detta.

Du måste bara skicka flaggan 65536 som mysql_connects 5:e parameter . flaggan definieras i MySQL Client-flaggor .

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

Så redigera din mysql_connect() kod som matchar detta:

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

Varning:

  1. Du kommer att få resultatet av mysql_query($query) endast för den första frågan i den givna $query . Du kan prova att sammanfoga 131072 med 65536 för att få flera resultat.
  2. Detta fungerar inte på PHP <4.3.0
  3. Detta fungerar inte om sql.safe_mode är satt som 1 i php.ini

Ett annat alternativ är att använda mysqli istället för mysql bibliotek. Den stöder $mysqli->multi_query() och ger utdata inom en array för varje fråga.



  1. DatabaseError:"inte alla argument konverterade under strängformatering" när jag använder pandas.io.sql.to_sql()

  2. fylla automatiskt i tabellen med dummydata i mysql

  3. Att skapa ett ett till många polymorft förhållande till doktrin

  4. filtrera mysql-replikering (ignore-db)