mysql_query()
odešle jedinečný dotaz (více dotazů není podporováno) .To je výchozí chování. Pro toto však existuje bypass.
Samotný výsledný kód prvního dotazu však bude dán jako výstup mysql_query()
pokud to uděláte.
Musíte pouze předat příznak 65536 jako 5. parametr mysql_connect. příznak je definován v příznaky klienta MySQL .
#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */
Upravte tedy mysql_connect()
kód odpovídající tomuto:
mysql_connect($host, $username, $password, false, 65536);
Upozornění:
- Obdržíte výsledek
mysql_query($query)
pro první dotaz pouze v daném$query
. Můžete zkusit zřetězit131072
s65536
pro získání více výsledků. - Toto nebude fungovat na PHP <4.3.0
- Toto nebude fungovat, pokud
sql.safe_mode
je nastaven jako 1 v php.ini
Další alternativou bude použití mysqli
místo mysql
knihovna. Podporuje $mysqli->multi_query()
a poskytuje výstup v rámci pole pro každý dotaz.