Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Interfejs połączenia z bazą danych MySQL
#1
Lokalizacja pliku: /engine/mysql_drv.php.

Aby ułatwić sobie pracę i umożliwić przeniesienie platformy błoga na inną bazę danych bez konieczności poprawiania całego systemu, powinniśmy utworzyć funkcje zawierające instrukcje dostępu do danej bazy i pozwalające się z nią łączyć W tym celu należy utworzyć i włączyć odpowiedni plik do systemu. Taki plik, czyli interfejs utworzony do połączenia z bazą danych MySQL, może zostać przekształcony w każdą inną bazę danych.

Rozpoczynamy od utworzenia pliku mysql_drv.php w katalogu engine. W pliku znajdą się funkcje napisane w języku PHP, a więc kod rozpoczynamy znacznikiem:

Kod PHP:
<?php 


Następnie deklarujemy funkcję do połączenia z bazą danych, która przyjmuje trzy argumenty: $HostToDB - nazwa hosta, na którym działa serwer z bazą danych, $UserLogin - login użytkownika, który ma prawo dostępu do tej bazy danych oraz $UserPassword - hasło użytkownika do bazy danych.

Kod PHP:
function ConnectToDB$HostToDB$UserLogin$UserPassword) { 


Wewnątrz funkcji wykorzystujemy polecenie mysql_connect, które ustanawia połączenie z bazą danych MySQL. Podajemy w nim parametry przekazane do funkcji. Polecenie deklarujemy wewnątrz warunku dla instrukcji if.

Kod PHP:
if (mysql_connect$HostToDB$UserLogin$UserPassword ) ) 


Jeżeli udało się nawiązać połączenie z bazą danych, zwracamy za pomocą instrukcji return wartość TRUE.

Kod PHP:
{

return 
TRUE;



Jeżeli nie udało się nawiązać połączenia z bazą danych, zwracamy za pomocą instrukcji return wartość FALSE.

Kod PHP:
else {

return 
FALSE;

} } 


Kolejnym krokiem jest wybór bazy danych dla naszego systemu. Deklarujemy funkcję, która wybierze bazę danych. Przyjmuje ona jeden argument, którym jest $DBName - zmienna zawierająca nazwę bazy danych.

Kod PHP:
function SelectDB($DBName) { 


Wykonujemy polecenie mysql_select_db, dla którego w parametrze podajemy nazwę bazy danych. Polecenie to umieszczamy wewnątrz instrukcji if.

Kod PHP:
if (mysql_select_db ($DBName) ) { 


Jeżeli udało się nawiązać połączenie z bazą danych, zwracamy za pomocą instrukcji return wartość TRUE.

Kod PHP:
return TRUE;




Jeśli nie uda się wybrać wskazanej przez nas bazy danych, zwracamy wartość FALSE za pomocą instrukcji return.

Kod PHP:
else {

return 
FALSE;

} } 


Następnie zadeklarujemy funkcję do wykonywania zapytań do bazy danych MySQL. Będzie ona przyjmowała jeden argument $QueryToDB, w którym będzie się znajdowało zapytanie w języku SQL.

Kod PHP:
function MakeQuery($QueryToDB) { 


Zmienną $ResultQuery deklarujemy jako zmienną globalną, aby była widoczna wewnątrz funkcji.

Kod PHP:
global $ResultQuery


Wykonujemy zapytanie do bazy danych za pomocą funkcji mysql_query. W parametrze tej funkcji podajemy zmienną dla zapytania SQL Wynik zapytania zostanie zwrócony do zmiennej $ResultQuery.

Kod PHP:
$ResultQuery mysql_query($QueryToDB); 


Następnie sprawdzamy poprzez instrukcję if, czy w wyniku znajdują się jakieś wartości.

Kod PHP:
if($ResultQuery) { 


Jeżeli w wyniku znajdują się jakieś wartości, wówczas zwracamy za pomocą instrukcji return wartość TRUE.

Kod PHP:
return TRUE;




Jeżeli w zmiennej $ResultQuery nie ma żadnych wartości, zwracamy za pomocą instrukcji return wartość FALSE.

Kod PHP:
else {

return 
FALSE;

} } 


Teraz zadeklarujemy funkcję, która zwróci nam błąd, jeśli wystąpił w bazie danych podczas wykonywania naszego zapytania.

Kod PHP:
function ShowErrorOfDB() { 


Deklarujemy dwie zmienne i przypisujemy do nich wartości z funkcji MySQL Funkcja mysql_error() zwraca opis błędu, natomiast funkcja mysql_errno() zwraca numer błędu.

Kod PHP:
$Error['text'] = mysql_error();
$Error['number'] = mysql_errno(); 


Następnie łączymy zmienne z ich opisem i wpisujemy je do zmiennej $lnformationOnError.

Kod PHP:
$InformationOnError 'Name: '.$Error['text'] .'Number: '.$Error['number']; 


Opis błędu zostanie nam zwrócony za pomocą instrukcji return.

Kod PHP:
return $InformationOnError; } 


Kolejna funkcja, którą utworzymy, będzie służyła do pobierania wyniku zapytania z bazy danych.

Kod PHP:
function GetResult() { 


Zmienną $ResultQuery uzyskaną w funkcji MakeQuery() deklarujemy jako zmienną globalną, aby była widoczna wewnątrz funkcji.

Kod PHP:
global $ResultQuery


Następnie za pomocą pętli while przepisujemy wszystkie wyniki do tablicy $ResultFromQuery[]. Pętla będzie wykonywana tak długo, aż nie zostaną wypisane wszystkie wyniki z bazy MySQL. Za wyniki odpowiada funkcja mysql_fetch_array($ResultQuery,MYSQL_ASSOC), w której pierwszym argumentem jest zmienna z wynikiem zapytania. Drugi argument jest opcjonalny. Możemy tu zdecydować, jaką tabelę chcemy uzyskać ponumerowaną czy asocjacyjną. Jeśli nie podamy argumentu, zostaną zwrócone dwie tabele. My użyjemy parametru MYSQL_ASSOC, aby została zwrócona tablica asocjacyjna.

Kod PHP:
while ($row mysql_fetch_array ($ResultQuery,MYSQL_ASSOC)) 
 {
   
$ResultFromQuery[] = $row;
 } 


Po zakończeniu pętli należy zwrócić wynik do zmiennej, do której przypisaliśmy wywołanie funkcji.

Kod PHP:
return $ResultFromQuery;




Przyda się nam jeszcze funkcja, która pobierze informację o ilości rekordów uzyskanych w wyniku zapytania.

Kod PHP:
function GetHowMany() { 


Na początek deklarujemy zmienną z wynikiem zapytania jako globalną.

Kod PHP:
global $ResultQuery


Aby pobrać do zmiennej $HowManyRecords liczbę wyników zapytania, odwołujemy się funkcji mysql_num_rows z podaniem w jej argumencie zmiennej z wynikami zapytania.

Kod PHP:
$HowManyRecords mysql_num_rows($ResultQuery); 


W kolejnym kroku zwracamy wynik za pomocą instrukcji return.

Kod PHP:
return $HowManyRecords;




Kończymy skrypt znakiem:

Kod PHP:
?>


Zapisujemy i zamykamy plik.
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości