Połączenie z bazą danych - PHP

advertisement
BAZY DANYCH W PHP
POŁĄCZENIE Z BAZĄ DANYCH
NAWIĄZANIE POŁĄCZENIA
Do połączenia z bazą danych służy funkcja mysqli_connect():
mysqli_connect('nazwa_hosta', 'nazwa użytkownika', 'hasło');
 nazwa_hosta - nazwa lub adres IP serwera, na którym została umieszczona baza danych
 nazwa użytkownika - użytkownik domyślny
 hasło - pusty ciąg znaków
Przykład
<?php
$do_bazy=mysqli_connect("localhost", 'jan', '2%azx');
if(!$do_bazy){
exit("Błąd połączenia z serwerem MySQL.");
}
else{
echo "Połączono z serwerem bazy danych<br>";
}
?>
KOŃCZENIE POŁĄCZENIA
mysqli_close('identyfikator');
Funkcja zwróci true, jeśli operacja zamykania zakończy się prawidłowo oraz false w przeciwnym przypadku.
WYBÓR BAZY
Po nawiązaniu połączenia z serwerem baz danych można określić bazę danych, z których będą pobierane dane.
Służy do tego funkcja mysqli_select_db():
mysqli_select_db('nazwa_bazy', ['identyfikator']);
Jeśli identyfikator pominiemy, wykorzystane zostanie połączenie ostatnio otwarte.
Przykład.
<?php
$do_bazy=mysqli_connect("localhost", 'jan', 'haslo');
if(!$do_bazy){
exit("Błąd połączenia z serwerem MySQL.");
}
else{
echo "Połączono z serwerem bazy danych<br>";
if(!mysqli_select_db('ksiegarnia', $do_bazy)){
echo "Błąd podczas wyboru bazy danych<br>";
}
else{
echo "Wybrana baza to: księgarnia internetowa.<br>";
//operacje na bazie danych
}
}
?>
Zdefiniowano połączenie dla użytkownika 'jan' z hasłem haslo. Jeśli połączenie nie zostanie zrealizowane,
wyświetli się komunikat i skrypt zakończy działanie.
ZAPYTANIA DO BAZY
Po nawiązaniu połączenia z wybraną bazą danych można wysyłać do niej zapytania. są one realizowane za
pomocą funkcji mysqli_query():
mysqli_query('zapytanie', ['identyfikator']);
Argumentem funkcji jest treść zapytania. Opcjonalnie można podać drugi argument określający identyfikator
połączenia.
while ($wiersze =
ZAPYTANIE POBIERAJĄCE DANE
Dla zapytań pobierających dane typu SELECT zwracany jest identyfikator zasobów. Może on być wykorzystany
do odczytania tych danych. Do ich odczytania można użyć funkcji mysqli_fetch_row() lub
mysqli_fetch_array().
Funkcja mysqli_fetch_row() odczytuje jeden wiersz tabeli i zapisuje w kolejnym wierszu tablicy. Jeśli brak
jest wiersza - zwraca false. Aby odczytać całą tablicę korzystamy z pętli:
while($wiersz=mysqli_fetch_row($wynik){
//przetwarzanie zapytania
}
Funkcja mysqli_fetch_rows() zwraca jako wartość liczbę wierszy znajdujących się w wyniku zapytania.
Przykład
$ile= mysqli_fetch_rows($wynik);
while($wiersz=mysqli_fetch_row($wynik){
//przetwarzanie zapytania
}
Funkcja mysqli_fetch_array() odczytuje całą tabelę i zwraca tablicę asocjacyjną. Kluczami są nazwy
kolumn zwróconej przez zapytanie tabeli
KLAUZULA WHERE
Klauzula WHERE jest dodawana do instrukcji SELECT wtedy, gdy należy wybrać tylko te wiersze, które spelniają
określone kryterium.
Przykład
<?php
$do_bazy=mysqli_connect("localhost", 'jan', 'haslo');
if(!$do_bazy){
exit("Błąd połączenia z serwerem MySQL.");
}
else{
if(!mysqli_select_db('ksiegarnia', $do_bazy)){
mysqli_close();
exit("Błąd podczas wyboru bazy danych.");
}
$zapytanie=mysqli_query("SELECT * FROM Klient WHERE Nazwisko='Nowak'");
if (!$zapytanie===true){
mysqli_close();
exit("Błąd w zapytaniu.");
}
while($tab = mysqli_fetch_array($zapytanie)){
echo $tab['nazwisko']." ".$tab['imie'];
echo '<br>';
}
}
?>
Zwrócone zostaną dane osób, które mają nazwisko Nowak.
ZAPYTANIE WSTAWIAJĄCE DANE
Za pomocą funkcji mysql_affected_rows() można odczytać, ile wierszy zostało zmodyfikowanych przez
zapytanie:
mysql_affected_rows([identyfikator])
Argument identyfikator jest opcjonalny i zawiera identyfikator połączenia z serwerem. Jeśli zostanie
pominięty, działania dotyczą ostatniego połączenia.
Zapytanie dodające nowe dane do tabeli jest relizowane przez polecenie INSERT INTO.
Przykład.
<?php
$do_bazy=mysqli_connect("localhost", 'jan', 'haslo');
if(!$do_bazy){
exit("Błąd połączenia z serwerem MySQL.");
}
if(!mysqli_select_db('ksiegarnia', $do_bazy)){
mysqli_close();
exit("Błąd podczas wyboru bazy danych.");
}
$dodaj="INSERT INTO Klient VALUES(NULL,'Joanna','Liszcz','25-900','Radom')";
if (!$zapytanie=mysqli_query($dodaj)){
mysqli_close();
exit("Błąd w zapytaniu.");
}
$ile=my_affected_rows();
echo "Liczba dodanych rekordów do tabeli Klient wynosi: $ile<br>";
mysqli_close();
?>
AKTUALIZOWANIE DANYCH
Aktualizowanie danych jest realizowane poprzez instrukcję UPDATE.
TWORZENIE BAZY DANYCH
Do tworzenia bazy danych jest używana instrukcja SQL CREATE DATABASE. Należy ją dołączyć do funkcji
mysql_query().
TWORZENIE TABELI
Do tworzenia tabeli w istniejącej bazie danych jest używana instrukcja SQL CREATE TABLE. Należy ją dołączyć
do funkcji mysql_query().
Przykład CBA
Założenia. nazwa serwera:

mysql.cba.pl

nazwa użytkownika: CuriiBK

hasło: xxxxxx //Twoje hasło
<?php
$servername = "mysql.cba.pl";
$username = "CuriiBK";
$password = "xxxxxxxx"; //twoje haslo
// użytkownik
$conn = mysqli_connect($servername, $username, $password);
if (mysqli_connect_errno())
{
echo "Blad polaczenia do MySQL: " . mysqli_connect_error();
}
// Sprawdzanie polaczenia
if (!$conn) {
die("Polaczenie nieudane: " );
}
echo "Polaczono z serwerem BAZY DANYCH";
?>
Zadania - polecenie
Wykonać zadania (przykłady) przedstawione w treści dla lokalnie zainstalowanego komputera (XAMPP) oraz
dla bazy umieszczonej na serwerze zewnętrznym (np. hostingu cba). W pierwszym przypadku dostarczyć
skrypty php.
Download