KWALIFIKACJA INF3 - CZERWIEC 2019

PYTANIE NR 40.
Jakie wartości muszą przyjmować zmienne w funkcji biblioteki mysqli, aby połączyć się z serwerem i bazą danych?

mysqli_connect($a, $b, $c, $d) or die('Brak połączenia z serwerem MySQL.');

A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawne połączenie wymaga zachowania stałej kolejności parametrów funkcji mysqli_connect(): najpierw adres hosta serwera, potem nazwa użytkownika, następnie hasło, a na końcu nazwa bazy do wybrania. Dlatego $a to adres serwera, $b to login, $c to hasło, a $d to nazwa bazy danych.
Najczęstsza pomyłka dotyczy zamiany loginu i hasła.

Pełne wyjaśnienie:

W wywołaniu mysqli_connect($a, $b, $c, $d) zmienne muszą odpowiadać ustalonej kolejności parametrów funkcji łączenia z bazą danych. W podstawowym wariancie używa się czterech pierwszych argumentów: host, użytkownik, hasło, baza.

Poprawne przypisanie jest następujące:

  • $a – adres serwera (host), np. lokalny host, adres IP lub nazwa domenowa serwera bazy,
  • $b – login (nazwa użytkownika bazy danych),
  • $c – hasło użytkownika bazy danych,
  • $d – nazwa bazy danych, która ma zostać wybrana po połączeniu.

To przypisanie wynika bezpośrednio z sygnatury: hostname, username, password, database. Dzięki temu funkcja może jednocześnie nawiązać połączenie z serwerem i od razu ustawić aktywną bazę (zamiast wykonywać osobny krok wyboru bazy później).

Dlaczego pozostałe odpowiedzi są błędne? Warianty, które przypisują adres serwera do $c, mylą rolę parametrów i w praktyce przekazałyby jako host hasło lub inną wartość niebędącą nazwą hosta, co uniemożliwia poprawne zestawienie połączenia. Odpowiedzi zamieniające login z hasłem odtwarzają typowy błąd uczniowski: oba pola są kojarzone jako "dane logowania", ale w tej funkcji mają ściśle określone miejsca (2. i 3. argument). Wariant, w którym nazwa bazy trafia do $b albo $d jest przesuwana na inne pozycje, prowadzi do błędnej autoryzacji lub braku wyboru właściwej bazy.

Wskazówka egzaminacyjna: zapamiętaj sekwencję "host → użytkownik → hasło → baza". Jeśli widzisz cztery argumenty, to prawie zawsze chodzi o te cztery elementy w tej kolejności; port i socket są dopiero argumentami opcjonalnymi.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznaczają kolejno: host (adres serwera bazy), użytkownik (login), hasło oraz bazę (nazwa bazy do wybrania). Ta kolejność jest stała, więc podstawienie złej wartości pod $b lub $c często kończy się błędem uwierzytelnienia.
Pomaga prosta sekwencja: "serwer → użytkownik → hasło → baza". Najpierw wskazujesz, z czym się łączysz (host), potem kim jesteś (użytkownik), czym się uwierzytelniasz (hasło), a na końcu jaki zasób wybierasz (baza).
Najpierw musi zostać nawiązane połączenie z serwerem i wykonane uwierzytelnienie użytkownika. Dopiero po poprawnym zalogowaniu serwer może przełączyć kontekst na wskazaną bazę. Dlatego parametr bazy jest po haśle i użytkowniku.
Nie zawsze. Jeśli czwarty parametr (nazwa bazy) jest pominięty lub pusty, połączenie może zostać zestawione, ale baza nie będzie wybrana automatycznie. Wtedy trzeba wykonać osobny krok wyboru bazy w dalszej części kodu.
Najczęstsze są: zamiana miejscami loginu i hasła, wpisanie nazwy bazy zamiast nazwy użytkownika, podanie błędnego hosta (np. mylenie hosta aplikacji z hostem bazy) oraz brak sprawdzenia, czy funkcja zwróciła poprawny uchwyt połączenia.
Serwer bazy potraktuje wartość z drugiego parametru jako nazwę użytkownika, a z trzeciego jako hasło. Jeśli nie odpowiadają rzeczywistym danym konta, uwierzytelnienie zakończy się niepowodzeniem i połączenie nie zostanie nawiązane.
Gdy baza działa na niestandardowym porcie lub wymaga połączenia przez konkretny socket (często w środowiskach serwerowych). W typowych zadaniach egzaminacyjnych wystarczają 4 parametry: host, użytkownik, hasło, baza, a pozostałe są opcjonalne.
Funkcja może zwrócić false, gdy połączenie się nie uda. Konstrukcja "or die(...)" to prosta forma natychmiastowej reakcji na błąd (zakończenie działania skryptu i komunikat). W praktycznych aplikacjach często stosuje się bardziej rozbudowaną obsługę błędów.
Weryfikuje się wartość zwracaną: gdy połączenie jest poprawne, otrzymujesz uchwyt/obiekt połączenia, a przy błędzie pojawia się false. W zadaniach egzaminacyjnych typowo widać to przez warunek lub prostą obsługę błędu w stylu "or die(...)".
Najczęściej jest to "localhost" w środowisku lokalnym albo adres IP/nazwa domeny serwera bazy w sieci. Ważne, by host dotyczył serwera bazy danych, a nie serwera WWW. Błędny host spowoduje brak możliwości zestawienia połączenia.
info

Statystycznie 65% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że poprawne połączenie wymaga zachowania stałej kolejności parametrów funkcji mysqli_connect(): najpierw adres hosta serwera, potem nazwa użytkownika, następnie hasło, a na końcu nazwa bazy do wybrania.

Źródła:

  • PHP Manual: mysqli_connect — https://www.php.net/manual/en/function.mysqli-connect.php (dostęp: 2026-03-05)
  • PHP Manual: MySQLi extension (overview) — https://www.php.net/manual/en/book.mysqli.php (dostęp: 2026-03-05)
  • PHP Manual: mysqli::connect (object-oriented counterpart) — https://www.php.net/manual/en/mysqli.construct.php (dostęp: 2026-03-05)

Materiały:

  • Oficjalna dokumentacja funkcji mysqli_connect() (opis parametrów i przykłady)
  • Ćwiczenia: tworzenie prostego skryptu łączącego się z bazą i wypisującego komunikat o błędzie
  • Notatki porównujące pojęcia: host vs użytkownik vs hasło vs baza

Aktualizacja pytania: 31.03.2026

Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego