Wykład 5: PHP: praca z bazą danych MySQL

Podobne dokumenty
Wykład 6: PHP: praca z bazą danych MySQL, cz.2

Autor: Joanna Karwowska

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Projektowanie systemów baz danych

Wdrożenie modułu płatności eservice. dla systemu Magento

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Instalacja MySQL.

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Podstawy technologii WWW

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Instrukcja obsługi aplikacji MobileRaks 1.0

Bazy danych. Polecenia SQL

Baza danych do przechowywania użytkowników

Dokumentacja serwisu internetowego Zespołu Szkół Technicznych w Radomiu.

Aplikacje WWW - laboratorium

Laboratorium 7 Blog: dodawanie i edycja wpisów

Aplikacje WWW - laboratorium

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2019 CZĘŚĆ PRAKTYCZNA

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Paweł Cieśla. Dokumentacja projektu

1 Moduł Konfigurowanie Modułu

PRÓBNY EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE CZĘŚĆ PRAKTYCZNA

Bazy Danych i Usługi Sieciowe

Oracle Application Express

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2017 CZĘŚĆ PRAKTYCZNA

Własna strona WWW w oparciu o CMS

5. Współpraca z bazą danych MySQL

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2017 CZĘŚĆ PRAKTYCZNA

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

PHP: bazy danych, SQL, AJAX i JSON

UMOWY INSTRUKCJA STANOWISKOWA

Podstawy technologii WWW

Oracle PL/SQL. Paweł Rajba.

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Podstawowe wykorzystanie Hibernate

Internetowe bazy danych

Bazy danych w PHP dla początkujących

CREATE USER

Autor: Joanna Karwowska

Języki programowania wysokiego poziomu. Ćwiczenia

2018/10/16 20:47 1/5 3 Ekrany

WTYCZKA FARA-TCM Dane techniczne dla twórców zewnętrznych aplikacji do obsługi map cmentarza

Instalacja portalu Internetowego Mambo

Dokumentacja SQL API 1

Wykład 05 Bazy danych

INSTALACJA SERWERA LOKALNEGO TYPU WAMP NA PRZYKŁADZIE PAKIETU KRASNAL SERV 2.7

Instrukcja użytkownika. Panel Administratora CreamCRM

Telesprzedaż by CTI Instrukcja

Umieszczanie kodu. kod skryptu

Język SQL, zajęcia nr 1

Bazy danych i usługi sieciowe

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

15. Funkcje i procedury składowane PL/SQL

6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia

Nazwa kwalifikacji: Tworzenie aplikacji internetowych i baz danych oraz administrowanie bazami Oznaczenie kwalifikacji: E.14 Numer zadania: 01

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Instrukcja Integracja z istore. Wersja z 07/02/2015. Copyright Zakupteraz.pl

Przewodnik użytkownika (instrukcja) AutoMagicTest

Miejskie Wodociągi i Oczyszczalnia sp. z o.o. w Grudziądzu. ibok. Internetowe Biuro Obsługi Klienta. Instrukcja obsługi

Podręcznik użytkownika Publikujący aplikacji Wykaz2

System Symfonia e-dokumenty

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Wypożyczalnia by CTI. Instrukcja

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Nazwa kwalifikacji: Tworzenie aplikacji internetowych i baz danych oraz administrowanie bazami Oznaczenie kwalifikacji: E.14 Numer zadania: 01

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2019 CZĘŚĆ PRAKTYCZNA

Podstawy programowania III WYKŁAD 2

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2019 CZĘŚĆ PRAKTYCZNA

Dokumentacja modułu Woocommerce

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2017 CZĘŚĆ PRAKTYCZNA

IIIIIIIIIIIIIIIMMIMMIII

Instrukcja instalowania aplikacji TNS mobistat. Tablet. Help Desk

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Instalacja systemu zarządzania treścią (CMS): Joomla

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2017 CZĘŚĆ PRAKTYCZNA

Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Diagnozy rozszerzonej

Rozpoczęcie pracy z programem.

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

Instrukcja. Rejestracji i aktywacji konta w systemie so-open.pl DOTACJE NA INNOWACJE; SOFTWARE OPERATIONS SP. Z O. O.

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Dokumentacja interfejsu MySQL. Platforma BSMS.PL Instrukcja podłączenia po przez mysql

Bazy Danych i Usługi Sieciowe

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2019 CZĘŚĆ PRAKTYCZNA

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Transkrypt:

Wykład 5: PHP: praca z bazą danych MySQL

Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych czyli warstwa klienta, warstwa aplikacji, warstwa danych Przykład działania: Po stronie klienta: wyświetla się formularz do wyszukania słów Na serwerze WWW: skrypt np. php, aby połączyć się z bazą danych i wygenerować kod HTML z wynikiem wyszukiwania (lista książek danego autora), który zwróci baza danych. Kod HTML zostanie wysłany do klienta jako odpowiedź serwera WWW Na serwerze bazy danych: tabela np. dwie kolumny: autor i tytuł książki Aplikacja WWW - aplikacja działająca na serwerze WWW, a użytkownik obsługuje ją w przeglądarce (interfejs tej aplikacji jest obsługiwany przez przeglądarkę). Dynamiczny dokument napisany w PHP jest przykładem takiej aplikacji (aplikacja może składać się z wielu dokumentów).

Baza danych MySQL Uruchomienie serwera bazy danych MySQL przez Control Panel XAMPP: nacisnąć "Start" dla serwisu (modułu) MySQL Bazą danych MySQL można zarządzać przez aplikację WWW phpmyadmin, Uruchomienie phpmyadmin przez Control Panel XAMPP: nacisnąć "Admin" dla serwisu MySQL W bazie danych zakładamy (jak to zrobić, patrz następny slajd): konto użytkownika z hasłem bazę dla tego użytkownika nadajemy mu pełne uprawnienia na tą bazę Po zainstalowaniu pakietu XAMPP, dostęp do bazy danych jako root domyślnie nie jest chroniony hasłem (hasło jest puste). Więc włączając phpmyadmin od razu uzyskujemy dostęp do baz danych. Na swoim serwerze należy to zmienić, ale w 405 i 407 NIE Ustawienie hasła dla root-a w MySQL: W Control Panel XAMPP nacisnąć "Admin" dla serwisu Apache. Dalej "Security" i następnie kliknąć w http://localhost/security/xamppsecurity.php

Baza danych MySQL - utworzenie konta użytkownika i bazy przez phpmyadmin W phpmyadmin: Użytkownicy - Dodaj użytkownika Nazwa użytkownika: wybrać "użyj pola tekstowego" i w polu obok wpisać nazwę np. nasze inicjały: mg Host: wybrać host lokalny (localhost). Pole obok wypełni się automatycznie jako localhost Wpisać i powtórzyć hasło W części "Baza danych dla użytkownika" zaznaczyć pole: "Utwórz bazę danych z taką samą nazwą i przyznaj wszystkie uprawnienia." Na dole strony nacisnąć "Wykonaj" Po wykonaniu powyższych czynności zostanie utworzone konto użytkownika i jednocześnie baza danych o tej samej nazwie co użytkownik. Użytkownik będzie miał pełny dostęp do tej bazy danych. Np. jeśli nazwa użytkownika: "mg" to baza danych też ma nazwę "mg"

Połączenie z bazą danych Przykład: polaczenie.php adres serwera bazy danych: localhost login: mg1 hasło: abc nazwa bazy: mg1 gdzie mg to nazwa jaką nadaliśmy przy zakładaniu konta (zobacz poprzedni slajd) Użyte funkcje: mysqli_connect() - otwiera połączenie z bazą danych, argumenty zgodne z tym co powyżej czyli adres serwera, login, hasło i nazwa bazy mysqli_connect_errno() - zwraca opis błędu, gdy połączenie się nie powiedzie, zwraca NULL gdy się powiedzie exit() - to samo co die() mysqli_close() - zamyka połączenie połączenie z bazą danych Zazwyczaj serwer www i serwer bazy danych jest uruchomiony na tym samym hoście, więc pierwszym argument mysqli_connect będzie localhost (czyli ten sam host co serwer www). Ale może być sytuacja, że serwer b.d. będzie uruchomiony na innym hoście, wtedy pierwszy argument mysqli_connect to adres tego serwerato a nie localhost.

Utworzenie tabeli w bazie W phpmyadmin można tworzyć tabele w trybie wizualnym lub przez uruchomienie zapytania SQL Utwórzmy tabelę z trzema kolumnami (atrybutami) do zapisywania zamówień na kawę id imie kawy Utworzenie w trybie wizualnym: Wybrać z lewej strony bazę W części "Utwórz tabelę" wpisać nazwę tabeli np. zamowienia i dalej nacisnąć "Wykonaj" Podać informacje o trzech kolumnach tabeli: Kolumna I: nazwa: id typ: INT A_I: zahaczykować (auto increment) - automatyczne nadawanie numeru dla rekordu, jednocześnie ta kolumna będzie automatycznie kluczem głównym Kolumna II: nazwa: imie typ: VARCHAR Długość: 50 Kolumna III: nazwa: kawy typ: INT Na dole po prawej nacisnąć "Zapisz"

Utworzenie tabeli w bazie Utworzenie poprzez uruchomienie zapytanie SQL: Wybrać z lewej strony bazę Z górnego menu wybrać "SQL" Wprowadzić poniższe zapytanie: CREATE TABLE zamowienia ( id INT PRIMARY KEY AUTO_INCREMENT, imie VARCHAR(50) NOT NULL, kawy INT NOT NULL ); Na dole po prawej nacisnąć "Wykonaj"

Wstawienie danych do tabeli (INSERT) Przykład: wstawienie.php Na stronie jest formularz do zamówienia kawy. Zamawiający podaje swoje imię i ile kaw zamawia. Zamówienie zapisywane jest w bazie danych w tabeli zamówienia Użyte funkcje: mysqli_query() - wykonuje zapytanie SQL podane jako drugi argument (pierwszy argument to zmienna połączenia) jeśli zapytanie się nie wykona zwraca FALSE jeśli zapytanie się wykona: w przypadku zapytań SELECT, SHOW, DESCRIBE zwraca obiekt mysqli_result będący wynikiem zapytania w przypadku pozostałych zapytań zwraca TRUE Zapytanie SQL podane jako argument dla mysqli_query nie wymaga średnika na końcu: $sql = "INSERT INTO zamowienia... ;"; // średnik czerwony jest niepotrzebny mysqli_error() - zwraca opis ostatniego błędu, w naszym przykładzie informacja dlaczego rekord nie został wstawiony, przydatna funkcja, aby uzyskać informacje o wszelkich błędach Funkcją mysqli_query() można wykonać dowolne zapytanie SQL, wstawiając je jako drugi argument.

Przykład: odczyt.php Odczyt danych z tabeli (SELECT) mysqli_num_rows() - zwraca ile wyników zapytania (ile rekordów/krotek/wierszy). mysqli_fetch_array() - zwraca tablicę reprezentującą rekord. Elementy tej tablicy to wartości kolejnych atrybutów (kolumn) danego rekordu. Dwie możliwości. Zmienna $res to zmienna, której wartością jest wynik zapytania: 1. mysqli_fetch_array($res) zwróci tablicę indeksowaną numerycznie 2. mysqli_fetch_array($res, MYSQLI_ASSOC) zwróci tablicę asocjacyjną indeksowaną nazwami atrybutów (kolumn) Kolejne rekordy spośród wyników zapytania odczytujemy w pętli while. mysqli_fetch_array() zwróci wartość null jeśli zostaną odczytane wszystkie rekordy. Wtedy pętla zostanie przerwana. mysqli_free_result() - zwalnia pamięć zajmowaną przez wynik zapytania.

Usuwanie danych z tabeli (DELETE) - cz. 1 Przykłady, dwa sposoby: Sposób I: usuwanie.php - użyto metody GET, usunięcie przez kliknięcie w link Sposób polega na tym, że przy każdym rekordzie (zamówieniu) dodajemy link z URL z parametrem "usun", aby wiedzieć, że ma być przeprowadzona operacja usuwania. Wartością parametru usun jest id rekordu, który ma być usunięty. Instrukcja if sprawdza czy było żądanie z parametrem usun w adresie URL, jeśli tak wykonuje zapytanie usuwające rekord o podanym id Uwaga: Tworząc link "Usuń" musimy chronić cudzysłów: Błąd podwójny cudzysłów: echo "<a href="jakis_adres">...</a>"; Poprawnie: echo "<a href=\"jakis_adres\">...</a>"; //chronimy backslashem wewnętrzny cudzysłów Poprawnie, ale nieczytelnie i łatwo się pomylić: echo "<a href=". ' " '. "jakisadres". ' ">...</a>" ';

Sposób II: Usuwanie danych z tabeli (DELETE) - cz. 2 usuwaniepost.php - użyto metody POST, usunięcie przez kliknięcie przycisku formularza Sposób polega na tym, że przy każdym rekordzie dodajemy formularz z przyciskiem "Usuń" typu submit i ukrytym polem z wartością będącą id rekordu, który ma być usunięty. Dzięki temu polu będziemy wiedzieli, że użytkownik nacisnął przycisk "Usuń" i który rekord usunąć. W formularzach ustawiamy metodę wysłanie na "post". Drugi sposób jest analogiczny z pierwszym. Różnica polega na tym, że inaczej są przekazywane parametry usunięcia: Sposób I: jako część adresu URL, Sposób II: w ciele żądania. Ale jeśli ustawimy w formularzu metodę GET a nie POST, usunięcie będzie "realizowane" metodą GET

Modyfikacja danych (UPDATE) Przykład: modyfikacja.php - modyfikacja przez kliknięcie w link Kroki do wykonania: 1. dodajemy link z URL z parametrem "zmien" z wartością będącą id rekordu, który będziemy modyfikować. 2. instrukcja warunkowa sprawdza czy było żądanie modyfikacji (czy był kliknięty link). Jeśli tak: 2a. odczytujemy z bazy rekord, który ma być zmodyfikowany po "id" przekazanym w p. 1 2b. wyświetlamy formularz z polami tekstowymi do których wpisujemy aktualne wartości rekordu (wartości wszystkich atrybutów z wyjątkiem atrybutu "id". Atrybutu "id" nie będzie można zmieniać). 2c. w tym formularzu tworzymy przycisk "Zapisz zmianę". Naciśnięcie będzie oznaczało, że należy wykonać modyfikację (wykonać zapytanie SQL modyfikujące rekord) 2d. w tym formularzu tworzymy pole ukryte: "zapisz" z wartością będącą id rekordu, który trzeba zmodyfikować. Dzięki temu będziemy wiedzieli, że trzeba zmodyfikować rekord i który. 3. instrukcja warunkowa sprawdza czy wykonać modyfikację (czy był naciśnięty przycisk "Zapisz zmianę"). Jeśli tak to wykonujemy modyfikację, a dane do modyfikacji odczytujemy z formularza. Link "Zmień", zmienna "zmien" - użytkownik zgłasza chęć wykonania modyfikacji (użyto GET) Przycisk "Zapisz zmianę", zmienna "zapisz" - zapisanie zmian w bazie (użyto POST)

Inne operacje np. CREATE analogicznie: Inne operacje w bazie Tworzymy zapytanie SQL i podajemy je jako argument funkcji mysqli_query() funkcją mysqli_error() możemy sprawdzić czy były błędy Przykład z poleceniem "create" i "drop" zobacz plik sql.php Ponad 100 funkcji w PHP do obsługi bazy danych: http://www.php.net/mysqli

Dane konfiguracji połączenia z bazą w oddzielnym pliku Mamy 4 skrypty PHP wykonujące następujące operacje: zapis, odczyt, usuwanie i modyfikację. W każdym z tych skryptów są dane konfiguracji połączenia z bazą danych. Problem: Jeśli zmieni się hasło, nazwa użytkownika itp. będziemy musieli robić zmiany w każdym z tych skryptów czyli 4 razy. Rozwiązanie: Dane konfiguracji połączenia z bazą danych należy zapisać w oddzielnym pliku i dołączyć go do tych czterech. Gdy zmieni się np. hasło zmianę musimy zrobić tylko w jednym pliku czyli 1 raz. 1. Zatem tworzymy plik o nazwie np. config.php i tam wpisujemy dane konfiguracji połączenia z bazą danych. Przykład: config.php 2. Ten plik dołączamy do tych 4 skryptów funkcją require (więcej o require na innym wykładzie). Przykład dla odczytu: odczyt_require.php (linia 10-11). Analogicznie możemy zrobić dla pozostałych plików (wstawienie.php, usuwanie.php, modyfikacja.php).