W PHP połączenie z bazą danych MySQL obsługiwane przez MySQLi jest zasobem, który zajmuje zasoby po stronie aplikacji i serwera (m.in. pamięć oraz gniazdo sieciowe). Dlatego po zakończeniu pracy z bazą (wykonaniu zapytań, ewentualnym zwolnieniu wyników) dobrą praktyką jest jawne zamknięcie połączenia.
Właściwą funkcją do tego celu w stylu proceduralnym jest mysqli_close() (np. mysqli_close($connection)). W stylu obiektowym analogiczną operacją jest wywołanie metody $connection->close(). Zamknięcie połączenia na końcu kodu jest szczególnie istotne w skryptach długo działających (CRON, procesy w tle), gdzie pozostawione połączenia mogą prowadzić do wyczerpania limitu połączeń lub "wycieków" zasobów.
Dlaczego pozostałe odpowiedzi są niepoprawne?
- mysql_close – dotyczy starego rozszerzenia mysql, które było przestarzałe i zostało usunięte w nowszych wersjach PHP. W kodzie opartym o MySQLi nie jest to właściwa funkcja, a w nowoczesnym PHP może w ogóle nie istnieć.
- exit – kończy wykonywanie skryptu. Choć zakończenie skryptu zwykle powoduje sprzątanie zasobów, nie jest to poprawna "operacja obsługi połączenia" ani dobra praktyka do kontrolowanego domykania połączenia w logice aplikacji.
- die – działa analogicznie do exit, kończąc skrypt (często z komunikatem). To mechanizm przerywania działania programu, a nie funkcja do zarządzania cyklem życia połączenia z bazą.
W praktyce typowy, poprawny schemat pracy wygląda tak: nawiązanie połączenia → wykonanie zapytań → (opcjonalnie) zwolnienie wyników → zamknięcie połączenia. Dzięki temu kod jest czytelny, a aplikacja lepiej kontroluje wykorzystanie zasobów.