mysql_query()
wysyła unikalne zapytanie (wiele zapytań nie jest obsługiwanych) .To jest zachowanie domyślne. Istnieje jednak obejście tego.
Jednak kod wyniku pierwszego zapytania zostanie podany jako wynik mysql_query()
jeśli to zrobisz.
Musisz tylko przekazać flagę 65536 jako piąty parametr mysql_connect . flaga jest zdefiniowana w flagach klienta MySQL .
#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */
Więc edytuj swój mysql_connect()
kod pasujący do tego:
mysql_connect($host, $username, $password, false, 65536);
Ostrzeżenie:
- Uzyskasz wynik
mysql_query($query)
dla pierwszego zapytania tylko w podanym$query
. Możesz spróbować połączyć131072
z65536
za uzyskanie wielu wyników. - To nie będzie działać w PHP <4.3.0
- To nie zadziała, jeśli
sql.safe_mode
jest ustawiony jako 1 w php.ini
Inną alternatywą będzie użycie mysqli
zamiast mysql
biblioteka. Obsługuje $mysqli->multi_query()
i daje wynik w postaci tablicy dla każdego zapytania.