KWALIFIKACJA INF3 - CZERWIEC 2020

PYTANIE NR 37.
W języku PHP, aby połączyć się z bazą danych MySQL przy pomocy biblioteki mysqli, stosując zamieszczony zapis, w miejscu litery 'c' należy zapisać

$a = new mysqli('b', 'c', 'd', 'e')

A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W konstruktorze mysqli kolejne argumenty oznaczają: host, nazwę użytkownika, hasło oraz nazwę bazy danych. Dlatego w miejscu oznaczonym literą "c" należy podać nazwę użytkownika, która służy do uwierzytelnienia połączenia z serwerem bazy.

Pełne wyjaśnienie:

W PHP obiekt mysqli służy do nawiązywania połączenia z serwerem bazy danych i wykonywania zapytań. Najczęściej używa się konstruktora, w którym przekazuje się podstawowe dane dostępowe.

W typowym zapisie new mysqli(host, użytkownik, hasło, baza) parametry mają stałą kolejność: najpierw wskazuje się adres serwera (host), następnie konto, którym aplikacja ma się logować (nazwa użytkownika), potem sekret uwierzytelniający (hasło), a na końcu nazwę bazy danych, z którą aplikacja chce pracować.

Odpowiedź "nazwę użytkownika" jest poprawna, bo w podanym wzorze argument oznaczony jako "c" znajduje się na drugim miejscu, a to miejsce odpowiada identyfikatorowi konta bazy danych używanemu do logowania.

  • "nazwa bazy danych" jest błędna, ponieważ nazwa bazy jest podawana dalej (zwykle jako czwarty argument) i nie służy do uwierzytelnienia, tylko do wyboru kontekstu pracy po połączeniu.
  • "hasło użytkownika" jest błędne w tym miejscu, bo hasło występuje po nazwie użytkownika. Pomylenie tych pól często skutkuje błędem logowania mimo poprawnych danych.
  • "lokalizacja serwera bazy danych" jest błędna, bo lokalizację/host podaje się jako pierwszy argument. To informacja sieciowa (gdzie się łączymy), a nie dane konta (kim się łączymy).

W praktyce egzaminacyjnej warto zapamiętać prostą regułę: najpierw gdzie (host), potem kto (użytkownik), potem sekret (hasło), a na końcu z czym pracuję (baza). To ogranicza ryzyko pomyłek między parametrami.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
W najczęstszym użyciu podaje się kolejno: adres serwera (host), nazwę użytkownika, hasło oraz nazwę bazy danych. Ta kolejność odpowiada temu, że najpierw wybierasz gdzie się łączysz, potem kim, następnie podajesz sekret i na końcu wskazujesz bazę.
Nazwa użytkownika identyfikuje konto, które ma uprawnienia (np. SELECT/INSERT) i służy do uwierzytelnienia. Nazwa bazy danych wskazuje, na jakiej bazie chcesz pracować po połączeniu. To dwa różne obszary: bezpieczeństwo (konto) i kontekst danych (baza).
Host to miejsce, gdzie działa serwer bazy (np. adres lub nazwa). Nazwa bazy to konkretny zbiór tabel na tym serwerze. Jeśli pomylisz te pola, połączenie zwykle w ogóle się nie powiedzie albo połączy się, ale bez dostępu do oczekiwanych danych.
W typowym wywołaniu konstruktora tak: po hoście podaje się nazwę użytkownika, a następnie hasło. Na egzaminie najczęściej sprawdza się tę standardową kolejność argumentów. Błędne ustawienie hasła w miejscu użytkownika skutkuje błędami logowania.
Najczęstsze są: zamiana miejscami użytkownika i hasła, wpisanie nazwy bazy jako hosta, użycie złego konta bez uprawnień oraz pominięcie obsługi błędów połączenia. Warto zawsze sprawdzić, czy dane odpowiadają czterem elementom: host, użytkownik, hasło, baza.
Najpierw sprawdź poprawność nazwy użytkownika i hasła oraz to, czy konto ma uprawnienia do wskazanej bazy. Następnie zweryfikuj host (czy łączysz się z właściwym serwerem). Częstą przyczyną jest też pomylenie kolejności parametrów w konstruktorze.
Technicznie da się nawiązać połączenie bez wskazania bazy, a potem wybrać ją inną metodą, ale w zadaniach egzaminacyjnych standardem jest przekazanie nazwy bazy w konstruktorze. To upraszcza kod i ogranicza liczbę miejsc, gdzie może pojawić się błąd.
Najbardziej wrażliwe są hasło oraz sama para: nazwa użytkownika + hasło. Nie powinny trafiać do repozytorium ani być wyświetlane użytkownikom. W praktyce przechowuje się je w konfiguracji poza katalogiem publicznym i stosuje ograniczone uprawnienia konta bazy.
Osobne konto z minimalnymi uprawnieniami ogranicza skutki błędów i podatności w aplikacji. Gdy aplikacja używa konta administracyjnego, atakujący może uzyskać pełną kontrolę nad bazą. Zasada minimalnych uprawnień to podstawowa praktyka bezpieczeństwa.
Pomaga reguła: gdzie–kto–sekret–co. Najpierw gdzie jest serwer (host), potem kto się loguje (użytkownik), potem sekret (hasło), a na końcu co wybierasz do pracy (baza). To proste hasło zmniejsza ryzyko zamiany pól w kodzie.
info

Około 48% zdających odpowiada poprawnie na to pytanie. trudne

Eksperci podkreślają: "W konstruktorze mysqli kolejne argumenty oznaczają: host, nazwę użytkownika, hasło oraz nazwę bazy danych."

Źródła:

  • PHP Manual: mysqli::__construct — opis parametrów konstruktora, https://www.php.net/manual/en/mysqli.construct.php (dostęp: 2026-03-01)
  • PHP Manual: mysqli — strona główna rozszerzenia i podstawy użycia, https://www.php.net/manual/en/book.mysqli.php (dostęp: 2026-03-01)
  • PHP Manual: MySQLi Quickstart — Connecting to MySQL, https://www.php.net/manual/en/mysqli.quickstart.connections.php (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja PHP: mysqli (opis konstruktora i parametrów połączenia)
  • Porównanie metod dostępu do bazy danych w PHP (mysqli vs PDO) – materiały kursowe
  • Ćwiczenia praktyczne: zestaw zadań z tworzenia połączeń i obsługi błędów połączenia

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego