![]() |
Interfejs połączenia z bazą danych MySQL - Wersja do druku +- CemesiK (https://cemesik.7m.pl) +-- Dział: Jak stworzyć własny BLOG (https://cemesik.7m.pl/forumdisplay.php?fid=14) +--- Dział: Interfejs połączenia z bazą danych MySQL (https://cemesik.7m.pl/forumdisplay.php?fid=169) +--- Wątek: Interfejs połączenia z bazą danych MySQL (/showthread.php?tid=71) |
Interfejs połączenia z bazą danych MySQL - Admin - 05-16-2025 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: { Jeżeli nie udało się nawiązać połączenia z bazą danych, zwracamy za pomocą instrukcji return wartość FALSE. Kod PHP: else { 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 { 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 { 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(); 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)) 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. |