(PHP 4 >= 4.0.6, PHP 5)
mysql_unbuffered_query — Wysyła zapytanie do serwera MySQL nie pobierając i nie buforując wyniku
mysql_unbuffered_query() wysyła zapytanie SQL do serwera MySQL, nie pobierając i nie buforując wyników zapytań, w przeciwieństwie do mysql_query(). To oszczędza znaczną ilość pamięci w zapytaniach SQL, które generują duże zbiory wynikowe. Można pracować na zbiorze wynikowym natychmiast po pobraniu pierwszego rekordu. Nie trzeba czekać, aż zapytanie SQL zostanie w bazie danych wykonane do końca. Aby posługiwać się funkcją mysql_unbuffered_query() z kilkoma połączeniami do baz danych, należy podawać opcjonalny parametr identyfikator_połączenia określający, które połączenie ma zostać wykorzystane.
Zapytanie SQL do wykonania
Dane w zapytaniu powinny być poprzedzone poprawnymi znakami ucieczki.
Połączenie MySQL. Jeśli identyfikator połączenia nie zostanie podany, użyte zostanie ostatnie połączenie otwarte przez mysql_connect(). Jeśli połączenie takie nie zostanie znalezione, funkcja spróbuje nawiązać połączenie tak, jakby wywołana została funkcja mysql_connect() bez argumentów. Jeśli żadne połączenie nie zostanie znalezione lub nawiązane, wygenerowany zostanie błąd poziomu E_WARNING.
Dla wyrażeń SELECT, SHOW, DESCRIBE lub EXPLAIN, mysql_unbuffered_query() zwraca zasób w przypadku sukcesu lub FALSE gdy nastąpi niepowodzenie.
Dla innych typów wyrażeń SQL, UPDATE, DELETE, DROP, etc, mysql_unbuffered_query() zwróci TRUE w przypadku powodzenia lub FALSE gdy nastąpi błąd.
Informacja:
Oprócz korzyści, funkcja mysql_unbuffered_query() wprowadza pewne ograniczenia: nie można użyć funkcji mysql_num_rows() i mysql_data_seek() na zbiorze wynikowym, zwróconym przez mysql_unbuffered_query(). Trzeba także pobrać wszystkie wiersze ze zbioru wynikowego niebuforowanego zapytania SQL przed wysłaniem kolejnego.