Dane dostępowe do bazy danych MySQL

Mirosław Zelent

Pierwszym krokiem realizowania skryptu współpracującego z bazą danych MySQL jest zawsze podanie informacji dostępowych, potrzebnych do połączenia się z bazą. Zazwyczaj są to następujące dane:

  • host (komputer przechowujący bazę),
  • login użytkownika MySQL (który posiada uprawnienia do wykonywania wybranych zapytań SQL),
  • hasło dostępowe tegoż użytkownika,
  • nazwa bazy danych, z której skorzystamy.

Te informacje umieszczamy najczęściej w jednym, zewnętrznym skrypcie (tutaj dbconnect.php), co pozwala nam w razie konieczności ich zmiany (z powodu np. przeprowadzki serwera) dokonać poprawki tylko w tym jednym miejscu, zamiast w wielu skryptach PHP łączących się z bazą danych. Wiele frameworków przestrzega tej zasady, umieszczając kluczowe informacje konfiguracyjne w specjalnym pliku, na przykład: wp-config.php w WordPress.

Przykładowa zawartość naszego dbconnect.php (w razie wątpliwości patrz tutorial video):


<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "szkola";
?>

Podpięcie danych dostępowych

Oczywiście plik należy teraz dołączyć do kodu - w naszym docelowym skrypcie łączącym się z bazą danych. Możemy to zrealizować na cztery sposoby:

1. Zainkluduj dane, a w razie gdyby pliku nie udało się poprawnie otworzyć wygeneruj tylko ostrzeżenie (warning) i kontynuuj działanie skryptu:

include "dbconnect.php";

2. Wymagaj danych, czyli w razie gdyby pliku nie udało się poprawnie otworzyć przerwij działanie skryptu (fatal error):

require "dbconnect.php";

3. Inkluduj dane, ale jednorazowo (ang. once). A zatem gdyby kiedyś zdarzyło nam się w jednym skrypcie podpiąć drugi raz ten plik (a zdarzyć się teoretycznie może, bo przegapić taki fakt w pojęczynie połączeń pomiędzy plikami łatwo), to i tak skrypt skorzysta tylko z pierwszego podpięcia, przez co unikniemy ponownej redefinicji wartości:

include_once "dbconnect.php";

4. Oczywiście istnieje także wymaganie pliku w wersji bez powtarzania:

require_once "dbconnect.php";

Dołączenie przygotowanych namiarów, pozwala nam użyć zmiennych zdefiniowanych w dbconnect.php do połączenia się z bazą danych:

require_once "dbconnect.php";
$conn = mysqli_connect($host, $user, $pass, $db);

Wydzielenie danych dostępowych do zewnętrznego, osobnego pliku nie jest oczywiście koniecznością. W najprostszej wersji, zamiast w ogóle tworzyć zmienne, wartości potrzebne do połączenia wpisujemy wprost w funkcję mysqli_connect():

$conn = mysqli_connect("localhost", "root", "", "szkola");

Co prawda nie przestrzegamy tutaj zasady wydzielenia danych dostępowych jeden raz dla całej witryny, ale nie jest to w żaden sposób zapis błędny (jest nieoptymalny, ale jak najbardziej akceptowalny). Jeśli więc interesuje Cię wersja najprostsza połączenia (chcesz po prostu zdać egzamin), to możesz użyć od razu zapisu bez tworzenia zmiennych ani dodatkowego pliku.