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 proberen131072
aan elkaar te koppelen met65536
voor het verkrijgen van meerdere resultaten. - Dit werkt niet op PHP <4.3.0
- 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.