PHP i MySQL – jak połączyć się z bazą danych i pobrać z niej dane
W celu połączenia się z bazą danych mySQL przy użyciu języka PHP wpierw musimy ustanowić połączenie. Aby tego dokonać należy utworzyć egzemplarz klasy mysqli poniższym poleceniem:
$con = new mysqli("serwer","user","hasło","baza","port","socket");
Jeżeli korzystasz ze standardowych ustawień serwera mysql parametry takie jak “port” czy “socket” możesz pominąć.
Zatem załóżmy, że nasz serwer znajduje się pod adresem: 127.0.0.1, nasz użytkownik to: root, jego hasło to RooThaslo, a baza z którą chcemy się połączyć to nauka. Polecenie zatem wyglądać będzie następująco:
$con = new mysqli("127.0.0.1","root","RooThaslo","nauka");
W poniższych przykładach będziemy wykorzystywali tabelę pracownicy, która znajduje się w bazie danych nauka.
Przejdźmy teraz do wykonania zapytania, pobrania danych i sprawdzenia ewentualnych błędów.
Przykład 1 (przy użyciu funkcji: fetch_array)
W naszym zapytaniu chcielibyśmy pobrać wyniki takie jak: imię, nazwisko i stawkę godzinową. Dane będą zwracane w kolejnych wierszach, a pola będą rozdzielane średnikami. Nasz SQL wyglądać będzie następująco:
SELECT imie, nazwisko, stawka FROM pracownicy;
Zatem będzie wyglądał nasz kod PHP:
<?php $con = new mysqli("127.0.0.1","root","RooThaslo","nauka"); $q="SELECT imie, nazwisko, stawka FROM pracownicy"; if($wynik=$con->query($q)) while($row=$wynik->fetch_array()) echo $row["imie"] . ";" . $row["nazwisko"] . ";" . $row["stawka"] . "<br/>"; else echo $con->errno . " " . $con->error; ?>
W wyniku powyższego zapytania otrzymaliśmy dane jak poniżej:
Stefan;Nowak;20.50
Jan;Kowalski;12.36
Za pomocą: $wynik=$con->query($q) wykonaliśmy zapytanie SQL przechowywane pod zmienną $q, a następnie jego wynik przypisaliśmy do zmiennej $wynik. W kolejnym kroku przy pomocy pętli whlie i funkcji fetch_array zwróciliśmy poszczególne wiersze z wynikami w formie tablicy i przypisaliśmy do zmiennej $row. Pozostało już tylko wyświetlić zwrócone wiersze podając zmienną $row oraz jako parametr nazwę pola z bazy danych wraz z separatorem ;.
Przykład 2 (przy użyciu funkcji: fetch_object)
<?php $con = new mysqli("127.0.0.1","root","RooThaslo","nauka"); $q="SELECT imie, nazwisko, stawka FROM pracownicy"; if($wynik=$con->query($q)) while($row=$wynik->fetch_object()) echo $row->imie . ";" . $row->nazwisko . ";" . $row->stawka . "<br/>"; else echo $con->errno . " " . $con->error; ?>
W powyższym przykładzie skorzystaliśmy z funkcji fetch_object, która zwraca wyniki w formie obiektu. W tym przypadku, aby odczytać dane musimy w posłużyć się nazwą $row znakiem -> oraz nazwą pola bazy danych, co daje nam w rezultacie np: $row->imie.
W obu powyższych przykładach przy funkcji if dodaliśmy jeszcze:
else echo $con->errno . " " . $con->error;
Funkcja ta zwróci nam komunikat w postaci numeru i opisu błędu jeżeli taki wystąpi. Zwrócony błąd może dotyczyć np: błędnej konfiguracji połączenia z bazą danych, bądź błędów w zapytaniu SQL takich jak błąd składni, nieprawidłowe nazwy kolumn bądź tabel.
Pomogłeś. Nie używałem php od 10 lat, Teraz muszę sobie to wszystko ogarnąć na szybkości. Praktycznie startuję od zera.