Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Bazy danych PHP

Słowa kluczowe: Funkcja mysql_connect() w PHP Funkcja mysql_select_db() w PHP Funkcja mysqli_select_db() w PHP mysql_query() w PHP

Jaką rolę pełni funkcja PHP o nazwie mysqli_close()?

A. pobrać kolejny wiersz wyniku zapytania jako tablicę
B. nawiązać połączenie z serwerem SQL
C. zamknąć połączenie z serwerem bazy danych
D. zwrócić liczbę wierszy w wyniku zapytania
Funkcja mysqli_close() służy do zamknięcia aktywnego połączenia z serwerem bazy danych MySQL/MariaDB, utworzonego wcześniej najczęściej przez mysqli_connect() albo przez konstruktor obiektu mysqli. To jest właśnie poprawna rola tej funkcji: kończy sesję połączenia po stronie skryptu PHP i zwalnia zasoby związane z komunikacją z bazą. W praktyce wygląda to tak, że najpierw aplikacja łączy się z bazą, wykonuje zapytania SQL, pobiera dane, a na końcu może wywołać mysqli_close($polaczenie). Moim zdaniem warto to kojarzyć z porządkowaniem stanowiska po pracy: baza już nie jest potrzebna, więc nie trzymamy niepotrzebnie otwartego kanału komunikacji. W PHP połączenia zwykle i tak są zamykane po zakończeniu działania skryptu, ale jawne zamknięcie jest dobrą praktyką, zwłaszcza w większych aplikacjach, skryptach CLI, dłużej działających procesach albo przy wielu połączeniach. Pomaga to ograniczać zużycie pamięci, uchwytów systemowych i liczby aktywnych sesji na serwerze SQL. Trzeba też pamiętać, że mysqli_close() nie wykonuje zapytań, nie liczy rekordów i nie pobiera danych z wyniku. Ona działa na obiekcie lub zasobie połączenia, czyli na tym, co reprezentuje kontakt PHP z bazą danych.
W tym pytaniu łatwo pomylić kilka funkcji z rozszerzenia MySQLi, bo ich nazwy są do siebie podobne i wszystkie dotyczą pracy PHP z bazą danych. mysqli_close() nie zwraca liczby wierszy w wyniku zapytania. Do takich zadań używa się innych mechanizmów, na przykład właściwości num_rows dla wyniku SELECT albo mysqli_num_rows(), gdy pracujemy proceduralnie. To jest operacja wykonywana na rezultacie zapytania, a nie na samym połączeniu. Inny częsty błąd polega na założeniu, że skoro funkcja ma w nazwie mysqli, to może służyć do łączenia z SQL. Do nawiązania połączenia używa się mysqli_connect() albo new mysqli(...). Samo close oznacza zamknięcie, więc tutaj nazwa funkcji jest dość logiczna, tylko trzeba ją czytać uważnie. mysqli_close() nie pobiera też kolejnego wiersza z wyniku zapytania jako tablicy. Za to odpowiadają funkcje typu mysqli_fetch_array(), mysqli_fetch_assoc() lub podobne metody obiektowe, które pracują na wyniku zwróconym przez mysqli_query(). Typowy błąd myślowy jest taki, że wrzuca się wszystkie funkcje obsługi bazy do jednego worka: połączenie, zapytanie, wynik, rekordy. W praktyce warto rozdzielać te etapy. Najpierw jest połączenie z serwerem bazy, potem wykonanie zapytania SQL, później ewentualne pobieranie rekordów, a na końcu zwolnienie zasobów i zamknięcie połączenia. Z mojego doświadczenia taka kolejność bardzo pomaga przy debugowaniu aplikacji PHP, bo od razu wiadomo, gdzie szukać problemu: w konfiguracji dostępu, składni SQL, obsłudze wyniku czy w zarządzaniu zasobami.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.