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.
tabela: pracownicy
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.
Szanujemy pracę innych autorów! Ten artykuł powstał na podstawie poradnika: https://informatyk.pro/php-i-mysql-jak-polaczyc-sie-z-baza-danych-i-pobrac-z-niej-dane/
0 Comments