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:
- Je krijgt het resultaat van
mysql_query($query)voor de eerste zoekopdracht alleen in de gegeven$query. Je kunt proberen131072aan elkaar te koppelen met65536voor het verkrijgen van meerdere resultaten. - Dit werkt niet op PHP <4.3.0
- Dit werkt niet als
sql.safe_modeis 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.