Przejdź do głównej treści
  1. Strona główna
  2. Technik informatyk
  3. INF.03
  4. Pytanie

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: Boolean w PHP Instrukcja if w PHP mysqli_connect_errno() w PHP

Wskaż poprawny składniowo warunek zapisany w języku PHP i sprawdzający brak połączenia z bazą MySQL.

Warunek if (mysqli_connect_errno()){} jest poprawny składniowo w PHP, bo instrukcja if wymaga nawiasów okrągłych wokół warunku oraz bloku kodu w nawiasach klamrowych. Funkcja mysqli_connect_errno() należy do rozszerzenia mysqli i zwraca numer błędu ostatniej próby połączenia z serwerem MySQL. Jeżeli połączenie się nie udało, zwracana wartość jest różna od zera, więc w warunku if zostanie potraktowana jako true. W praktyce zapisuje się to np. tak: $polaczenie = mysqli_connect('localhost', 'root', '', 'sklep'); if (mysqli_connect_errno()) { echo 'Błąd połączenia z bazą'; }. Moim zdaniem warto od razu zapamiętać, że w nowych projektach nie używa się starego rozszerzenia mysql, tylko mysqli albo PDO. To jest dobra praktyka branżowa, bo mysqli obsługuje nowsze mechanizmy MySQL, zapytania przygotowane i daje lepszą kontrolę nad błędami. Sam warunek z pytania sprawdza właśnie sytuację awaryjną: brak połączenia, błędny login, złe hasło, nieistniejącą bazę albo niedostępny serwer. W normalnej aplikacji po takim sprawdzeniu zwykle przerywa się dalsze wykonywanie kodu albo zapisuje błąd do logów, zamiast pokazywać użytkownikowi szczegóły techniczne.
W niepoprawnych zapisach mieszają się dwa różne problemy: błędna składnia instrukcji warunkowej PHP oraz pomylenie starych i nowych funkcji do obsługi MySQL. W PHP warunek po słowie if musi być zapisany w nawiasach okrągłych, czyli if (warunek), a dopiero potem można dać blok instrukcji w nawiasach klamrowych. Zapis w stylu if {funkcja()}{ } nie pasuje do gramatyki języka, bo nawiasy klamrowe nie służą do podawania warunku. One wyznaczają blok kodu, który ma zostać wykonany po spełnieniu warunku. To niby drobiazg, ale interpreter PHP potraktuje taki zapis jako błąd składni i skrypt w ogóle się nie wykona. Drugi częsty błąd to używanie nazw z przedrostkiem mysql zamiast mysqli. Stare rozszerzenie mysql zostało uznane za przestarzałe już dawno i usunięte w PHP 7, więc w nowoczesnym kodzie nie powinno się go stosować. Dodatkowo mysql_connect_error() nie jest poprawnym odpowiednikiem funkcji mysqli_connect_error(); tutaj łatwo wpaść w pułapkę, bo nazwy wyglądają podobnie. Jest jeszcze kwestia nawiasów po warunku, np. końcowe () zamiast bloku { }. To nie oznacza wykonania kodu po if, tylko tworzy niepoprawny zapis. Z mojego doświadczenia takie pomyłki wynikają często z uczenia się składni na pamięć, bez rozumienia roli nawiasów. W PHP trzeba rozdzielać: nawiasy okrągłe przechowują warunek, nawiasy klamrowe grupują instrukcje, a funkcja mysqli_connect_errno() zwraca kod błędu połączenia.

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. Wyślemy 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.