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

Hvordan udfører man flere mysql-forespørgsler sammen i PHP?

mysql_query() sender en unik forespørgsel (flere forespørgsler understøttes ikke) .Det er standardadfærden. Der er dog en bypass for dette.

Resultatkoden for den første forespørgsel alene vil dog blive givet som output af mysql_query() hvis du gør dette.

Du skal blot sende flag 65536 som mysql_connects 5. parameter. flaget er defineret i MySQL Client flag .

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

Så rediger din mysql_connect() kode, der matcher dette:

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

Advarsel:

  1. Du får resultatet af mysql_query($query) kun for den første forespørgsel i den givne $query . Du kan prøve at sammenkæde 131072 med 65536 for at få flere resultater.
  2. Dette virker ikke på PHP <4.3.0
  3. Dette virker ikke, hvis sql.safe_mode er sat som 1 i php.ini

Et andet alternativ vil være at bruge mysqli i stedet for mysql bibliotek. Den understøtter $mysqli->multi_query() og giver output inden for et array for hver forespørgsel.



  1. Sådan beregnes median i PostgreSQL

  2. MySQL_real_escape_string tilføjer ikke skråstreger?

  3. Dynamisk oprettet WHERE-klausul PHP/MySQL

  4. SQL Select inklusive datatype og dataværdier