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

Polecenie pg_connect języka PHP służy do połączenia się z bazą

A. mySQL
B. PostgreSQL
C. MS ACCESS
D. MS SQL

Pytanie z egzaminu CKE, wrzesień 2015 (arkusz E.14-X-15.08).

Funkcja pg_connect() w PHP służy do nawiązania połączenia z bazą danych PostgreSQL, więc odpowiedź PostgreSQL jest właściwa. Przedrostek pg w nazwach funkcji PHP odnosi się właśnie do PostgreSQL, np. pg_query(), pg_fetch_assoc() czy pg_close(). W praktyce pg_connect() przyjmuje ciąg połączenia zawierający takie dane jak host, port, nazwa bazy, użytkownik i hasło, np. host=localhost port=5432 dbname=sklep user=admin password=haslo. To typowy sposób pracy w starszych albo prostszych aplikacjach PHP, choć w nowych projektach często zaleca się używanie PDO, bo daje bardziej jednolity interfejs do różnych silników baz danych. Moim zdaniem warto jednak znać funkcje pg_, bo na egzaminach i w pracy przy istniejących systemach pojawiają się całkiem często. Dobra praktyka to nie wpisywać danych dostępowych bezpośrednio w wielu plikach, tylko trzymać je w konfiguracji, ograniczać uprawnienia użytkownika bazy oraz stosować zapytania parametryzowane, żeby nie narobić problemów z SQL Injection.
W tym pytaniu łatwo pomylić nazwy technologii, bo wszystkie odpowiedzi dotyczą baz danych lub systemów używanych przy aplikacjach webowych. Klucz jest jednak w samej nazwie funkcji pg_connect(). Skrót pg w PHP oznacza obsługę PostgreSQL, a nie dowolne połączenie z bazą. To nie jest uniwersalna funkcja do każdego silnika SQL. Do MS SQL używa się innych mechanizmów, na przykład rozszerzenia sqlsrv albo PDO z odpowiednim sterownikiem, zależnie od konfiguracji serwera. MS Access też nie pasuje, bo jest raczej plikową bazą danych z ekosystemu Microsoftu i w PHP nie obsługuje się jej przez funkcje pg_. Dawniej spotykało się połączenia przez ODBC, ale to zupełnie inna warstwa dostępu. MySQL również ma własne rozwiązania, takie jak mysqli_connect() albo PDO z driverem mysql. Typowy błąd myślowy polega na tym, że ktoś widzi connect i zakłada, że chodzi ogólnie o łączenie z bazą, bez patrzenia na przedrostek funkcji. W PHP te przedrostki są bardzo ważne: mysqli_ wskazuje MySQL, pg_ wskazuje PostgreSQL, a sqlite_ odnosi się do SQLite. Z mojego doświadczenia najlepiej uczyć się tych nazw razem z przykładowymi funkcjami zapytań, bo wtedy od razu widać, z jakim systemem bazodanowym dana biblioteka współpracuje. W realnym projekcie zły wybór funkcji nie skończy się tylko słabą odpowiedzią w teście, ale błędem działania aplikacji, brakiem połączenia albo koniecznością instalacji innego rozszerzenia PHP.

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.