Projektowanie serwisów WWW Obsługa bazy danych w środowisku PHP mgr inż. Łukasz Jopek Instytut Informatyki Stosowanej PŁ Wykorzystanie funkcjonalności baz danych może przynieść wiele korzyści dla projektowanego serwisu WWW. Zazwyczaj głównym celem stosowania BD jest przechowywanie różnego rodzaju danych (dane użytkowników, obrazy, teksty itp.). Poniższa instrukcja zawiera podstawowe informacje pozwalające na użycie BD w tworzonym przez Państwa serwisie WWW. 1. Łączenie się z Serwerem bazodanowych oraz bazą danych Pierwszym krokiem jest ustanowienia połączenia z serwerem bazodanowym oraz następnie z samą bazą. Serwer BD może być lokalny, lub zdalny – w przypadku większych serwisów może stanowić osobny zestaw maszyn. Sposób połączenia w języku PHP można zrealizować następująco: <?php /****************************************************** * funkcja „connection.php” ******************************************************/ function connection() { // serwer $mysql_server = "adres_serwera"; // admin $mysql_admin = "uzytkownik"; // hasło $mysql_pass = "haslo"; // nazwa baza $mysql_db = "nazwa_bazy_danych"; // nawiązujemy połączenie z serwerem MySQL @mysql_connect($mysql_server, $mysql_admin, $mysql_pass) or die('Brak połączenia z serwerem BD.'); // łączymy się z bazą danych @mysql_select_db($mysql_db) or die('Błąd polaczenia z wybrana baza danych.'); } ?> Funkcja „connection.php” zapewnia zestawienie połączenia najpierw z wybranym serwerem BD, a następnie z wybraną bazą. W przypadku niemożliwości zrealizowania połączenia użytkownik otrzymuje stosowny komunikat. Sposób użycia funkcji „connection.php” przedstawiony został poniżej: <?php // podłączamy plik connection.php require "connection.php"; // wywołujemy funkcję connection() connection(); ?> 2. Korzystanie z bazy danych Ideowy sposób korzystania bazy według Blake Schwendimana [1]: <?php połącz_z_bazą(); wybierz_bazę(); wyślij_zapytanie(); pobierz_wyniki(); while(isnieje_wiersz) pobierz_wiersz(); zamknij_połączenie(); ?> W naszym przypadku funkcja connection.php realizuje dwie pierwsze pozycje (połączenia z serwerem i sama bazą). mysql_close(); Zamyka połączenia z BD. Przykłady podstawowych zapytań języka SQL : mysql_num_rows($wynik_zapytania) - zwraca ilość wierszy zwróconych przez zapytanie mysql_num_fields($wynik_zapytania) - zwraca ilość pól zwróconych przez zapytanie mysql_list_dbs($polaczenie) - zwraca wszystkie nazwy baz znajdujących się na serwerze mysql_connect(host,uzytkownik,hasło) - połączenie z bazą danych mysql_query($zapytanie) - wykonanie zapytania do bazy danych 3. Przykład zastosowania BD w serwisie WWW (dla bazdy danych MySQL) <?php // Łączenie z wybranym serwerem BD oraz samą bazą $link = mysql_connect('serwer_BD', 'uzytkownik', 'haslo') or die(Blad polaczenia z Serwerem BD' . mysql_error()); echo 'Polaczono pomyslnie'; mysql_select_db('nazwa_bazy_danych') or die('Blad polaczenia z bazda danych'); // Przygotowywanie zapytania SQL $query = 'SELECT * FROM my_table'; // Wykonanie zapytania SQL $result = mysql_query($query) or die('Blad zapytania SQL' . mysql_error()); // Prezentacja wyników wykonania zapytania na stronie WWW (w postaci HTML) echo "<table>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; // Zwalnianie zasobów mysql_free_result($result); // Zamykanie połączenia z wybraną BD mysql_close($link); ?> 4. Linki zewnętrzne: Język SQL: http://www.internetowy.strefa.pl/sql.pdf http://www.php.rk.edu.pl/w/p/podstawy-jezyka-sql/ http://office.microsoft.com/pl-pl/access-help/jezyk-access-sql-podstawowe-pojeciasownictwo-i-skadnia-HA010256402.aspx Bazy danych w środowisku PHP: http://cauchy.pl/systemy/php-mysql/pobranie-danych-z-bazy-mysql/ http://php.net/manual/pl/book.mysql.php http://www.php.pl/Wortal/Artykuly/PHP/Podstawy/Tutorial-PHP-MySQL/Wyswietlanieinformacji Inne bazy danych: http://phpmaster.com/using-an-access-database-with-php/ (baza danych MS ACCESS) http://php.net/manual/pl/function.mssql-close.php (baza danych MS SQL) http://php.net/manual/en/book.oci8.php (baza danych ORACLE) Bazy danych i Bezpieczeństwo: http://www.php.pl/Wortal/Artykuly/Bezpieczenstwo/Podstawy-bezpieczenstwa-skryptowPHP http://www.wpk.p.lodz.pl/~moliktom/W6_php.pdf [1] Blake Schwendiman „PHP4. Kompendium programisty”, 2002, ISBN:83-7197-521-X