30 dniowy kurs php – dzień 23 – łączenie z bazą danych


Back-end (php, mysql)

Aby połączyć się z bazą potrzebujemy 3 parametrów. Nazwy serwera, nazwę użytkownika i hasło. Nasz serwer to localhost, ale nawet łącząc się na z serwerem w wykupionym hostingu również jako serwer podaje się localhost. Warunkiem jest działanie bazy danych na tym samym serwerze, na którym uruchamiamy skrypt łączenia z bazą. Ale w 99% przypadków jeśli firma hostingowa udostępnia możliwość zakładania bazy danych to logując się do niej podajemy serwer localhost.

Wyjątkiem może być sytuacja, kiedy mamy wykupionych kilka hostingów. W ten sposób możemy mieć bazę danych na innym serwerze niż działa nasza strona. Wtedy zamiast localhost musimy podać adres serwera z innego hostingu.

Tyle teorii. Funkcja php odpowiadająca za połączenie z bazą danych MySQL to mysql_connect(); w nawiasie wpisujemy parametry. Całość wygląda następująco:

mysql_connect('nazwaSerwera', 'nazwaUzytkowanika', 'haslo');

Warto utworzyć konstrukcję typu if, która sprawdzi czy połączenie się powiodło:

<?php
$polaczenie = mysql_connect('localhost', 'root', 'hasloZphpmyadmina');
if(!$polaczenie)
{
 die('Błąd połączenia: ' . mysql_error());
}
?>

Jeśli wszystko wpisałeś poprawnie nie zobaczysz żadnego efektu (biała strona). Ale zrób jakiś błąd i napisz zamiast localhost np. google. Pojawi się błąd, wykonywanie skryptu zostanie zatrzymane.

Możemy dodać jeszcze funkcję mysql_close() ale nie jest ona wymagana. Php i tak sam zamknie połączenie na końcu wykonywania skryptu. Jeśli jednak chciałbyś wykonać więcej połączeń i do różnych baz danych dobrze byłoby zamknąć połączenie przed ustanowieniem nowego.

<?php
// POŁĄCZENIE #1
$polaczenie1 = mysql_connect('serwer1', 'root', 'haslo');
 
if(!$polaczenie1)
{
 die('Błąd połączenia: ' . mysql_error());
}
 
// operacje na bazie serwera1
 
mysql_close($polaczenie1);

// POŁĄCZENIE #2
$polaczenie2 = mysql_connect('serwer2', 'root', 'haslo');
 
if(!$polaczenie2)
{
 die('Błąd połączenia: ' . mysql_error());
}
 
// operacje na bazie serwera2
 
mysql_close($polaczenie2);
?>

Wiesz już jak połączyć się z bazą. Aby zachować czytelność warto byłoby zastosować zmienne w połączeniu. Finalnie nasz skrypt będzie wyglądał następując:

<?php
$serwer = 'localhost';
$uzytkownik = 'root';
$haslo = 'hasloZphpmyadmina';
 
$polaczenie = mysql_connect($serwer, $uzytkownik, $haslo);
 
if(!$polaczenie)
{
 die('Błąd połączenia: ' . mysql_error());
}
 
// operacje wykonywane na bazie
 
mysql_close($polaczenie);
?>

W następnej lekcji zajmiemy się tworzeniem bazy danych i umieszczaniem w nich tabel z danymi.