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:
<?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:
<?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:
<?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:
<?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:
<?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:
<?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:
<?php 
return TRUE;

}


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

Kod PHP:
<?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:
<?php 
function MakeQuery($QueryToDB) {


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

Kod PHP:
<?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:
<?php 
$ResultQuery
= mysql_query($QueryToDB);


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

Kod PHP:
<?php 
if($ResultQuery) {


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

Kod PHP:
<?php 
return TRUE;

}


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

Kod PHP:
<?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:
<?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:
<?php 
$Error
['text'] = mysql_error();
$Error['number'] = mysql_errno();


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

Kod PHP:
<?php 
$InformationOnError
= 'Name: '.$Error['text'] .'Number: '.$Error['number'];


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

Kod PHP:
<?php 
return $InformationOnError; }


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

Kod PHP:
<?php 
function GetResult() {


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

Kod PHP:
<?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:
<?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:
<?php 
return $ResultFromQuery;

}


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

Kod PHP:
<?php 
function GetHowMany() {


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

Kod PHP:
<?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:
<?php 
$HowManyRecords
= mysql_num_rows($ResultQuery);


W kolejnym kroku zwracamy wynik za pomocą instrukcji return.

Kod PHP:
<?php 
return $HowManyRecords;

}


Kończymy skrypt znakiem:

Kod PHP:
<?php 
?>


Zapisujemy i zamykamy plik.
Odpowiedz


Skocz do:


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