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: ACID w SQL Funkcja mysqli_close() w PHP Funkcje w PHP

W języku PHP, wykonując operacje na bazie danych MySQL, aby zakończyć pracę z bazą, należy wywołać

A. mysqli_close();
Dobrze. mysqli_close() zamyka połączenie z serwerem bazy danych.
B. mysqli_rollback();
Źle. mysqli_rollback() wycofuje zmiany transakcji, nie zamyka połączenia.
C. mysqli_exit();
Źle. Funkcji mysqli_exit() nie ma w bibliotece MySQLi.
D. mysqli_commit();
Źle. mysqli_commit() zatwierdza transakcję, ale połączenie zostaje otwarte.

Pytanie z egzaminu CKE, styczeń 2017 (arkusz E.14-X-17.01).

Poprawna jest funkcja mysqli_close(). Zamyka ona połączenie z serwerem MySQL otwarte wcześniej funkcją mysqli_connect() i zwalnia zasoby związane z tym połączeniem. Przyjmuje jako argument identyfikator połączenia, np. mysqli_close($polaczenie);.

Typowy schemat skryptu PHP pracującego z bazą ma cztery kroki: mysqli_connect() - połączenie, mysqli_query() - wysłanie zapytania, mysqli_fetch_row() lub mysqli_fetch_assoc() - odczyt wierszy, a na końcu mysqli_close(). PHP zamyka połączenie automatycznie po zakończeniu skryptu, ale jawne zamknięcie to dobry nawyk i kryterium oceniane w arkuszach egzaminacyjnych INF.03.

W wersji obiektowej MySQLi to samo robi metoda $polaczenie->close(), wywoływana na obiekcie połączenia utworzonym przez new mysqli().

Każda z błędnych funkcji kojarzy się z kończeniem czegoś, ale nie połączenia. mysqli_exit() w ogóle nie istnieje w bibliotece MySQLi - w PHP jest konstrukcja exit, która przerywa cały skrypt, a nie pracę z bazą. Wywołanie nieistniejącej funkcji kończy się błędem krytycznym.

mysqli_commit() i mysqli_rollback() dotyczą transakcji, czyli grupy zapytań wykonywanych jako całość. Pierwsza zatwierdza zmiany wprowadzone w transakcji, druga je wycofuje. Obie kończą transakcję, ale połączenie z serwerem pozostaje otwarte i można wysyłać kolejne zapytania. Łatwo to zapamiętać: transakcja to jedna paczka zmian w trakcie połączenia, a połączenie zamyka się osobną funkcją o nazwie mówiącej wprost „zamknij”.

Na egzaminie praktycznym INF.03 w skryptach PHP sprawdzane jest zwykle właśnie to, czy połączenie zostało zamknięte funkcją mysqli_close() po wykonaniu wszystkich zapytań. Dlatego warto od razu kojarzyć tę funkcję z ostatnią linijką bloku pracy z bazą.

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.