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

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

Bazy danych. Polecenia SQL

Lista dostępnych baz danych: SHOW DATABASES; Lista dostępnych tabel: SHOW TABLES;

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

Podstawy technologii WWW

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

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

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

Aplikacje WWW - laboratorium

Telesprzedaż by CTI Instrukcja

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

Autor: Joanna Karwowska

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

Aplikacje WWW - laboratorium

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

Dokumentacja SQL API 1

Bazy danych. dr Radosław Matusik. radmat

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

Instrukcjaaktualizacji

Praca w programie dodawanie pisma.

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

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

SYSTEM ZARZĄDZANIA RELACJAMI Z KLIENTEM CRM7

AZACO Eksporter. Instrukcja konfiguracji oraz automatycznego eksportu danych. Przygotowanie środowiska...2. Konfiguracja zadań eksportu danych...

Diagnoza Szkolna Pearsona. Instrukcja obsługi

Aplikacje WWW - laboratorium

Język SQL, zajęcia nr 1

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

ShopGold Integrator by CTI. Instrukcja

Automatyka i Robotyka ROK III TEMAT: TWORZENIE I ZARZĄDZANIE INTERNETOWĄ BAZĄ DANYCH

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

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

KASK by CTI. Instrukcja

I. Program II. Opis głównych funkcji programu... 19

Wypożyczalnia by CTI. Instrukcja

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Wstęp. Opis ten dotyczy wydziałów orzeczniczych.

I. Interfejs użytkownika.

Instrukcja użytkownika. Aplikacja dla Comarch ERP XL

Języki programowania wysokiego poziomu. Ćwiczenia

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

SymSync integracja danych Opencart/Prestashop Symfonia Handel Instrukcja obsługi

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej Pozwolenia wodnoprawne i zgłoszenia przydomowych oczyszczalni ścieków

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Opis modułu pl.id w programie Kancelaria Komornika - VAT

Data modyfikacji:

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

6. Bezpieczeństwo przy współpracy z bazami danych

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

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

INSTRUKCJA OBSŁUGI PROGRAMU IRF DLA BIURA RACHUNKOWEGO Program Rachmistrz/Rewizor. Strona0

Instrukcja użytkownika. Panel Administratora CreamCRM

Projektowanie systemów baz danych

INSTRUKCJA OBSŁUGI OPROGRAMOWANIA VMS. Spis treści Instalacja Instrukcje użytkowania i obsługi... 3

Opis modułu Zapytania pl.id Kancelaria Komornika-VAT

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

Instrukcja obsługi/instalacji platformy Krok w Przedsiębiorczość Administrator platformy

Zapytania do baz danych

Instrukcja EQU Kantech

Instrukcja konfiguracji funkcji skanowania

Przewodnik użytkownika (instrukcja) AutoMagicTest

Instrukcja obsługi aplikacji MobileRaks 1.0

Bazy danych 7. SQL podstawy

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

CREATE USER

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

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

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

3. Budowa prostych raportów opartych o bazę danych

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

WellCommerce Poradnik: Sprzedaż

Wykład 4. SQL praca z tabelami 1

Płace Optivum, Artykuł30

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

NetDrive czyli jak w prosty sposób zarządzać zawartością FTP

Platforma e-learningowa

Dokumentacja SMS przez FTP

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

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

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

phpmyadmin - Bazy danych - Podstawy PHP

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

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Podręcznik użytkownika Publikujący aplikacji Wykaz2

Pomoc systemu poczty elektronicznej Wydziału Humanistycznego Uniwersytetu Szczecińskiego. Wersja: 1.12

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

SQL Server Configuration Manager centrum dowodzenia

Palety by CTI. Instrukcja

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

Instrukcja użytkownika aplikacji modernizowanego Systemu Informacji Oświatowej PRACA NA WIELU BAZACH DANYCH

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

Administracja bazami danych

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Wersja 2.0 SERWISOWO. Instrukcja obsługi systemu. Autor: Piotr Koblak. Instrukcja obsługi sytemu SERWIS wersja 2.0 Kontakt do autora:

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

WEBTRUCKER INSTRUKCJA OBSŁUGI V.2.6

PHP: bazy danych, SQL, AJAX i JSON

Transkrypt:

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

Połączenie z bazą danych (cba.pl) Uwaga ogólna: Gdy korzystamy z usługi hostingowej: usługodawca poda nam nasz login, hasło i nazwę bazy danych (przy bezpłatnej usłudze zazwyczaj można korzystać tylko z jednej bazy i nie można zmienić jej nazwy) zwykle usługodawca umożliwia administrowanie bazą MySQL za pomocą aplikacji www phpmyadmin W przypadku hostingu cba.pl, aby uzyskać dostęp do bazy danych należy (mając już założone konto www na cba.pl): Zaloguj się do panelu na stronie cba.pl lub od razu logować się na: http://cba.pl/panel/ po lewej stronie z menu wybrać "Bazy danych" wybrać "Dodaj" nazwa użytkownika: może być taka jak nazwa konta www, np. u mnie: mg407 hasło: może być takie jak do konta www, albo można inne po wypełnieniu formularza wybrać "Dodaj" Po dodaniu na liście pojawi się założona baza. Stąd odczytujemy dane do konfiguracji połączenia, następny slajd:

Połączenie z bazą danych (cba.pl) Konfiguracja połączenia z bazą danych na cba.pl: adres serwera bazy danych: tak jak "Host" login: taki jak jest "Nazwa użytkownika" hasło: takie jakie podaliśmy hasło przy dodawaniu bazy nazwa bazy: taka jaka jest "Nazwa bazy danych" Hosting cba.pl w ramach bezpłatnej oferty daje obsługę php i baz danych (tylko jednej, ale może być tam wiele tabel). Dostęp do phpmyadmin na cba.pl (gdy już mamy założoną bazą danych): Po zalogowaniu na konto www w prawym górnym rogu wybrać "MySQL" lub od razu logować się na http://cba.pl/pma/ Logując się do phpmyadmin na cba.pl podajemy nazwę użytkownika i hasło takie jakie ustaliliśmy przy zakładaniu bazy danych (czyli użytkownik może być taki sam jak nazwa konta WWW, hasło może być takie samo jak hasło do konta WWW)

phpmyadmin - przenoszenie danych między bazami (np. z 407 do cba.pl) Najpierw wyeksportujmy z 407 Eksport - eksportowanie tabel bazy danych do pliku.sql: 1. Wejść do swojej bazy (lokalnie w 407) i wybrać z górnego menu "Eksport" 2. Wybrać opcję: "Dostosuj - wyświetli wszystkie możliwe opcje" 3. Zaznaczyć tabele, które chcemy wyeksportować 4. "Szablon nazwy pliku" - jak ma się nazywać plik z wyeksportowaną bazą 5. Format: SQL 6. Naciśnij "Wykonaj". Zostanie utworzony plik.sql, podaj miejsce jego zapisu A teraz zaimportujmy do cba.pl Import - zaimportowanie tabel do bazy na cba.pl: W phpmyadmin na cba.pl (http://cba.pl/pma/): 1. Zalogować się i wejść do swojej bazy danych (wybrać po lewej stronie) 2. Wybrać z górnego menu "Import" 3. Wybrać "Przeglądaj" i wskazać wyeksportowany wcześniej plik - po wskazaniu nacisnąć "Wykonaj". Import jest zakończony

Przykład: wstawienie_daty.php, tabela zamowienia_daty.sql Wpisywanie daty zamówienia Aby sprawdzić przykład należy zaimportować do swojej bazy i poprawić konfigurację połączenia z bazą danych W tabeli zamowienia_daty mamy dwie kolumny na datę: typ timestamp z wartością domyślną CURRENT_TIMESTAMP. W tym przypadku przy wstawianiu rekordu automatycznie zostanie wpisana data. typ datetime bez wartości domyślnej. W tym przypadku wpisujemy datę samodzielnie.

Przykład: Generowanie pola formularza z bazy pole_formularza_generowane_z_bazy.php tabela: dania.sql Aby sprawdzić przykład należy zaimportować do swojej bazy i poprawić konfigurację połączenia z bazą danych W bazie danych jest tabela dania z nazwami dań Generujemy pole formularza typu select, którego elementami będę rekordy z tabeli dania Dodając/usuwając rekordy z tabeli dania zmieniamy zawartość pola select (np. przybyło nowe danie w ofercie, albo usunęliśmy jakieś danie z oferty)

Przykład: slownik.php Aplikacja WWW: słownik tabela: slownik.sql Aby sprawdzić przykład należy zaimportować do swojej bazy i poprawić konfigurację połączenia z bazą danych W tabeli slownik są wpisane słowa w języku angielskim (kolumna "slowo") oraz znaczenia tych słów w języku polskim (kolumna "opis") Aplikacji pozwala wyszukiwać słowa podając w formularzu całe słowo lub jego początek. Wynikiem wyszukania jest lista słów, które są linkami. Kliknięcie link wyświetla znaczenie danego słowa w języku polskim

Aplikacja WWW - przykład z wykorzystaniem bazy danych do wykonania na laboratorium jako ćwiczenie 7 Źródło: "Aplikacje WWW" z http://wazniak.mimuw.edu.pl

Zmienna superglobalna $_SERVER Przykłady: server_php_self.php oraz server.php $_SERVER - zmienna superglobalna będąca tablicą asocjacyjna, w której zapisane są m.in. informacje wysyłane w nagłówkach żądań i odpowiedzi HTTP Klucze (indeksy) tablicy $_SERVER: Klient: REMOTE_ADDR - adres IP hosta klienta REMOTE_NAME - nazwa hosta klienta REQUEST_METHOD - metoda żądania: GET lub POST HTTP_USER_AGENT - informacja o przeglądarce klienta HTTP_REFERER - adres url, z której trafiono na bieżącą stronę. Uwaga: nie w każdej przeglądarce ta informacja jest zapisywana. Serwer: PHP_SELF - nazwa pliku z aktualnie wykonywanym skryptem (przydatne, aby nie poprawiać kodu jeśli zmienimy nazwę pliku ze skryptem, przykład server_php_self.php) SERVER_ADDR - adres IP serwera na którym został wykonany skrypt SERVER_NAME - nazwa serwera na którym został wykonany skrypt SERVER_SOFTWARE - identyfikacja serwera przesyłana w odpowiedzi HTTP np. Apache/2.2.24 SERVER_PROTOCOL - wersja protokołu HTTP używana przez serwer

Polskie znaki (i znaki diakrytyczne innych alfabetów),cz.1 Przez phpmyadmin utwórzmy bazę danych a w niej tabelę osoby z atrybutami id (auto increment) oraz imie (varchar(20)) Problem: Nie można wprowadzić znaków niełacińskich. Są zastępowane znakami zapytania. Powód: Jest ustawione niewłaściwe kodowanie znaków w tabeli MySQL: character set ("zestaw znaków") - używany zestaw znaków w bazie collation ("metoda porównywanie napisów") - reguła porównywania znaków (służy do sortowania) Jeśli przy tworzeniu bazy, tabeli, kolumny nie wskażemy jakiego chcemy używać zestawu znaków zostanie użyty domyślny. W naszym przypadku: character set: latin1 collation: latin1_swedish_ci A w tym zestawie nie ma np. polskich i litewskich znaków diakrytycznych

Polskie znaki (i znaki diakrytyczne innych alfabetów), cz. 2 Rozwiązanie problemu: Zmieniamy zestaw znaków dla kolumny imie w tabeli osoby na utf8 poprzez ustawienie collation ut8_unicode_ci: Będąc w Strukturze tabeli wybrać "Zmień" dla kolumny imie i wybrać z listy collation ut8_unicode_ci - po tym nacisnąć "Zapisz" Utf8 obsługuje znaki niełacińskie, w tym polskie i litewskie znaki diakrytyczne, więc teraz można już wpisywać takie znaki. Aby od razu był właściwy zestaw znaków dla kolumny Żeby za każdym razem nie trzeba było zmieniać zestawu znaków dla kolumny, można zmienić zestaw znaków dla bazy i wtedy ten zestaw znaków będzie domyślnie używany dla każdej kolumny. W tym celu: Przez phpmyadmin: wybrać konkretną bazę danych - dalej z menu górnego "Operacje" - i ustawić żądane collation w "Metoda porównywania napisów" np. ut8_unicode_ci jeśli teraz utworzysz nową tabelę i w niej kolumnę to ta kolumna będzie miała od razu utawiony zestaw znaków utf_8_unicode_ci

Polskie znaki (i znaki diakrytyczne innych alfabetów), cz. 2 Wyjaśnienie jak jest zorganizowany zestaw znaków w phpmyadmin: wyświetlana jest tylko informacje o "collation", a nie ma informacji o "character set". Ale collation jednoznacznie wskazuje jaki zestaw znaków jest używany. Użyty zestaw to nazwa przed podkreśleniem, czyli: jeśli collation: latin1_swedish_ci, to znaczy że użyty jest character set: latin1 jeśli collation: ut8_unicode_ci, to znaczy że użyty character set: utf8 itd. Jak sprawdzić jakie jest collation: dla bazy: strona główna phpmyadmin - górne menu "Bazy danych" i na liście mamy informację dla tabeli: wybrać bazę danych, na liście są tabele i przy każdej tabeli info o collation dla kolumny: wybrać tabelę i dalej z górnego menu "Struktura" i tam dla kolumny info o collation

Polskie znaki (i znaki diakrytyczne innych alfabetów), cz. 3 Zasada "dziedziczenia": jeśli tworzymy bazę to domyślne collation jest przenoszone z ustawień serwera jeśli tworzymy tabele to domyślne collation jest przenoszone z collation dla bazy jeśli tworzymy kolumnę to domyślne collation jest przenoszone z collation dla tabeli Wniosek, można skorzystać z dziedziczenia: Jeśli utworzymy bazę z collation ut8_unicode_ci to kolumny w tabeli utworzonej w tej bazie będą miały automatycznie też collation ut8_unicode_ci

Polskie znaki (i znaki diakrytyczne innych alfabetów), cz. 4 Przykład: polskie_znaki.php - wprowadzanie i odczytywanie danych z tabeli osoby Aby sprawdzić przykład zaimportować osoby.sql do swojej bazy i poprawić konfigurację połączenia z bazą danych Kodowanie dokumentu html generowanego przez ten skrypt ustawiamy na utf-8 czyli <meta charset="utf-8"> Problem: 1. Gdy wprowadzamy dane do bazy przez formularz i odczytujemy na stronie www znaki wyświetlają się poprawnie, ale gdy wejdziemy do phpmyadmin znaki wyświetlają się niepoprawnie 2. Z kolei jeśli dodamy rekord lub zmodyfikujemy z poziomu phpmyadmin to na stronie znaki nie będą wyświetlały się poprawnie

Polskie znaki (i znaki diakrytyczne innych alfabetów), cz.5 Powód: na serwerze może być ustawienie, aby używać innego zestawu znaków do komunikacji z klientem niż utf8. Rozwiązanie: w skrypcie po instrukcji połączenia z bazą danych: $mysqli = mysqli_connect("localhost", "mg", "abc", "mg"); ustawiamy jakiego kodowania ma używać serwer w komunikacji z klientem: mysqli_set_charset($mysqli, "utf8"); Sprawdzenie jakie są domyślne ustawienia kodowania i collation za pomocą poleceń SQL: SHOW VARIABLES LIKE 'character\_set\_%'; SHOW VARIABLES LIKE 'collation\_%'; (zob. plik character_set_collation.php)

Przykład: polskie_znaki.php Collation - porównywanie znaków W tabeli osoby (zaimportowanej dw slajdy wstecz) mamy następujące rekordy: a č ć c Wykonujemy zapytanie SQL: "SELECT * FROM osoby ORDER BY imie": Jeśli collation kolumny: utf8_unicode_ci otrzymamy rekordy w kolejności: a č ć c Jeśli collation kolumny: utf8_lithuanian_ci otrzymamy kolejność (polskie w złej kolejności): a ć c č Jeśli collation kolumny: utf8_polish_ci otrzymamy kolejność (polskie w dobrej kolejności): a č c ć Jeśli collation kolumny: utf8_bin otrzymamy kolejność (polskie w dobrej kolejności): a c ć č Wykonanie zapytania SQL ze wskazanym collation: SELECT * FROM osoby ORDER BY imie collate utf8_bin Zapytanie zostanie wykonane z collation utf8_bin mimo, że dla kolumny może być ustawione inne collation niż utf8_bin

Dodatkowe informacje

Polskie znaki (i znaki diakrytyczne innych alfabetów): Polecenia SQL zmieniające zestaw znaków i metodę porównywania napisów: 1. w bazie danych: ALTER DATABASE nazwa_bazy DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci 2. w tabeli: ALTER TABLE nazwa_tabeli DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci 3. w kolumnie: ALTER TABLE nazwa_tabeli MODIFY nazwa_kolumny typ_kolummny CHARACTER SET utf8 COLLATE utf8_unicode_ci typ_kolumny to np. VARCHAR(20) Wykonanie takich zapytań w phpmyadmin w trybie SQL: wybrać z górnego menu "SQL", wpisać polecenie i w prawym dolnym rogu "Wykonaj"

Polskie znaki (i znaki diakrytyczne innych alfabetów) Polecenia SQL tworzące bazę, tabelę i kolumnę ze wskazanym zestawem znaków i metodą porównywania napisów: 1. utworzenie bazy: CREATE DATABASE nazwa_bazy CHARACTER SET utf8 COLLATE utf8_unicode_ci; Jeśli nie podamy zestawu znaków i metody por. nap. zostaną użyte domyślne dla serwera. 2. utworzenie tabeli: CREATE TABLE nazwa_tabeli (...) CHARACTER SET utf8 COLLATE utf8_unicode_ci; Jeśli nie podamy zestawu znaków i metody por. nap. zostaną użyte ustawienia domyślne dla bazy czyli ustawione w p. 1 3. utworzenie kolumny: nazwa_kolumny typ_kolummny CHARACTER SET utf8 COLLATE utf8_unicode_ci; Jeśli nie podamy zestawu znaków i metody por. nap. zostaną użyte ustawienia domyślne dla tabeli czyli ustawione w p. 2 Powyższe zapytania można wykonać w phpmyadmin w trybie SQL