BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech



Podobne dokumenty
Podstawy programowania III WYKŁAD 2

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

Sprzeg podstawowy do baz danych w PHP Mateusz Sowa, 2007

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

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

Bazy Danych i Usługi Sieciowe

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Autor: Joanna Karwowska

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

Internetowe bazy danych

15. Funkcje i procedury składowane PL/SQL

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

Aplikacje WWW - laboratorium

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Komunikator internetowy w C#

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja

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

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

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Przekazywanie danych. Dane zewnętrzne mogą pochodzić z róŝnych źródeł:

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Podstawy programowania (wspólne dla JavaScript i PHP)

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Smarty PHP. Leksykon kieszonkowy

Należy ściągnąć oprogramowanie Apache na platformę

Język PHP. Studium Podyplomowe Sieci Komputerowe i Aplikacje Internetowe. v1.7, 2007/11/23

Aplikacje WWW - laboratorium

PHP: bloki kodu, tablice, obiekty i formularze

Aplikacje WWW - laboratorium

I.Wojnicki, JiTW. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Część VII Baza danych MySQL i PHP

KatMPBSoft - 1 -

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Projektowani Systemów Inf.

Systemy internetowe Wykład 3 PHP

Spis treści. Wstęp 5 Rozdział 1. Praca z AJAX-em 9. Rozdział 2. Współpraca ze skryptami PHP 55. Rozdział 3. Obsługa formularzy 81

Instalacja MySQL.

Zajęcia 10 obsługa formularzy w PHP

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

Aplikacje internetowe - laboratorium

5. Współpraca z bazą danych MySQL

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

I.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie

Zaawansowane bazy danych i hurtownie danych

Internetowe bazy danych

Internetowe bazy danych

PHP: bazy danych, SQL, AJAX i JSON

Podstawowe wykorzystanie Hibernate

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Dlaczego PHP? - zalety

Obiektowe bazy danych

ZMIENNE. Podstawy PHP

Kurs PHP. Literatura. Zagadnienia: Wprowadzenie

ODBC polecenia i funkcje

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Podręcznik Integracji

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Bazy danych i strony WWW

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

Zajęcia 11 wykorzystanie MySQL w PHP

Wprowadzenie. Rozdział 23 PDO. Podstawowe kroki aplikacji. Źródło danych

Bazy Danych i Usługi Sieciowe

SSK - Techniki Internetowe

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

PHP. PHP: Hypertext Preprocessor. mgr inż. Remigiusz Pokrzywiński

Praca z bazą danych. Rysunek 1. Projekt tabeli UZYTKOWNIK bazy KURSY

Personal Home Page PHP: Hypertext Preprocessor

KURS ACCESS 2003 Wiadomości wstępne

Wprowadzenie do Internetu Zajęcia 5

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Biuletyn techniczny Instalacja i uruchamianie CDN OPT!MA dodatkowe moŝliwości. Data powstania: Copyright 2007 COMARCH SA

CREATE USER

Zmienne i stałe w PHP

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

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Podpisywanie i bezpieczne uruchamianie apletów wg

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

asist Uproszczona procedura migracji danych aplikacji asist przy błędnych ustawieniach zestawu znaków bazy danych Oracle

Wersja dokumentacji1.01. TeleToken API

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

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

Aplikacje internetowe

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

Data modyfikacji:

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Transkrypt:

BAZY DANYCH Obsługa bazy z poziomu języka PHP opracowanie: Michał Lech

Plan wykładu 1. PHP - co to jest? 2. Bazy danych obsługiwane przez PHP 3. Podstawowe polecenia 4. Sesje 5. Przykład - dodawanie towaru do koszyka

PHP - co to jest? PHP: Hypertext preprocessor skryptowy język programowania słuŝący do tworzenia stron / serwisów www uruchamianie skryptów po stronie serwera www - niemoŝliwe podejrzenie kodu przez klienta łączony z HTML

PHP - co to jest? Aby moŝliwe było uruchamianie stron PHP konieczne jest zainstalowanie serwera www i umieszczenie stron w odpowiednim katalogu serwera

HTML + PHP <html> <head> <title>php Test</title> </head> <body> <?php echo "Hello World";?> </body> </html>

Bazy danych obsługiwane przez PHP MySQL Postgres Oracle Mssql DB2

Połączenie z bazą resource pg_connect(string connection_string) pg_connect() Zwraca identyfikator połączenia, który jest uŝywany przez inne funkcje PostgreSQL-a. pg_connect() Otwiera tymczasowe połączenie do serwera PostgreSQL określonego przez connection_string. Zwraca identyfikator połączenia jeśli operacja się powiedzie. Zwraca FALSE jeśli połączenie nie mogło być nawiązane. connection_string powinien być łańcuchem w cudzysłowach. http://algorytmy.pl/doc/php/

Połączenie z bazą int pg_pconnect(string connection_string) pg_pconnect() otwiera stałe połączenie do serwera PostgreSQL. Zwraca identyfikator połączenia uŝywany przez inne funkcje PostgreSQL-a. Aby zezwolić na uŝywanie stałych połączeń, naleŝy ustawić dyrektywę php.ini pgsql.allow_persistent na "On" (jest to ustawienie domyślne). Maksymalna liczba jednoczesnych stałych połączeń moŝe być zdefiniowana przez dyrektywę php.ini pgsql.max_persistent (domyślnia wartość to -1 oznacza brak ograniczeń). Maksymalna liczba wszystkich połączeń moŝe być ustawiona przez dyrektywę php.ini pgsql.max_links. pg_close() nie zamyka połączeń stałych otwartych przez pg_pconnect(). http://algorytmy.pl/doc/php/

Połączenie z bazą $dbconn = pg_connect ("dbname=mary"); //Otwiera połączenie z bazą "mary" $dbconn2 = pg_connect ("host=localhost port=5432 dbname=mary"); //Otwiera połączenie z bazą "mary" na komputerze "localhost" przez port "5432" http://algorytmy.pl/doc/php/

Połączenie z bazą $dbconn3 = pg_connect ("host=sheep port=5432 dbname=mary user=lamb password=foo"); //Otwiera połączenie z bazą "mary" na komputerze "sheep" z uŝyciem nazwy uŝytkownika i hasła $dbconn4 = pg_connect ("host=sheep port=5432 dbname=test user=lamb password=bar"); //Otwiera połączenie z bazą "test" na komputerze "sheep" z uŝyciem nazwy uŝytkownika i hasła http://algorytmy.pl/doc/php/

Pozyskanie danych resource pg_query(resource connection, string query) pg_query() zwraca identyfikator wyniku jeśli zapytnie zostało wykonane lub FALSE w razie niepowodzenia. Szczegóły błędu mogą być odczytane przez funkcje pg_last_error() jeśli identyfikator połączenia jest prawidłowy. pg_query() wysyła zapytanie SQL do bazy PostgreSQL wskazanej przez identyfikator połączenia connection zwrócony przez funkcję pg_connect() lub pg_pconnect(). Zwrócona wartość jest identyfikatorem wyniku uŝywanym przez inne funkcje PostgreSQL takie jak pg_fetch_array(). http://algorytmy.pl/doc/php/

Pozyskanie danych connection jest parametrem opcjonalnym dla pg_query(). Jeśli connection nie jest podane, domyślne połączenie będzie uŝyte. Domyślnym połączeniem jest ostatnie połączenie otwarte przez pg_connect() lub pg_pconnect(). Mimo Ŝe connection moŝe zostać pominiete, nie jest to zalecane, gdyŝ moŝe spowodować trudny do znalezienia błąd w skrypcie. http://algorytmy.pl/doc/php/

Pozyskanie danych $query = SELECT * FROM autorzy ; $result = pg_query($dbh, $query);

Pobranie liczby wierszy i kolumn: $liczba_wierszy = pg_num_rows($result); $liczba_kolumn = pg_num_fields($result);

Pobranie konkretnych danych (z $result): mixed pg_fetch_result(resource result, int row, mixed field) pg_fetch_result() zwraca dane z wyniku result zwróconego przez pg_query(). row jest numerem wiersza. field jest nazwą kolumny (łańcuch) lub jej indeksem(liczba). Parametry row i field wskazują którą komórkę tabeli wyniku naleŝy zwrócić. Wiersze są numerowane od 0. Zamiast nazwy kolumny moŝna uŝyć numerycznego indeksu kolumny. Kolumny są numerowane od 0. http://algorytmy.pl/doc/php/

Wyświetlenie wyników: for($w = 0; $w < $liczba_wierszy; $w++) { for($k = 0; $k < $liczba_kolumn; $k++) { echo pg_fetch_result($wynik, $w, $k); echo \t ; } echo <br /> ; }

Pobranie wiersza: array pg_fetch_row(resource result [, int row]) pg_fetch_row() pobiera jeden wiersz z wyniku wskazanego przez result. Wiersz jest zwracany jako tablica. KaŜda kolumna jest elementem tablicy o indeksie odpowiadającym numerowi kolumny w wyniku. Kolumny są numerowane od 0. Zwraca tablicę z danymi odpowiadającymi pobranemu wierszowi lub FALSE gdy nie ma więcej wierszy. Od wersji php 4.1.0 argument row opcjonalny http://algorytmy.pl/doc/php/

Pobranie wiersza: $num = pg_num_rows($result); for ($i = 0; $i < $num; $i++) { $r = pg_fetch_row($result, $i); for ($j = 0; $j < count($r); $j++) { echo "$r[$j] "; } echo "<BR />"; } http://algorytmy.pl/doc/php/

Pobranie wiersza (sposób 2): array pg_fetch_array (resource result, int row [, int result_type]) pg_fetch_array() zwraca tablicę zawierającą dane z pobranego wiersza lub FALSE jeśli nie ma więcej wierszy. pg_fetch_array() jest rozszerzeną wersją pg_fetch_row(). Oprócz zapisywania danych w indeksach numerycznych, zapisuje je teŝ w indeksach przyporządkowujących (asocjacyjnych), uŝywając nazw kolumn jako kluczy. http://algorytmy.pl/doc/php/

Pobranie wiersza (sposób 2) c.d.: array pg_fetch_array (resource result, int row [, int result_type]) row jest numerem wiersza do pobrania. Pierwszy wiersz ma numer 0. result_type opcjonalny parametr określający rodzaj wyniku. result_type jest stałą i moŝe przyjmować następujące wartości: PGSQL_ASSOC, PGSQL_NUM, i PGSQL_BOTH. pg_fetch_array() zwraca tablicę z indeksami przyporządkowującymi które mają nazwę kolumny jako klucz dla PGSQL_ASSOC, numer kolumny jako klucz dla PGSQL_NUM i obydwa (nazwę/numer) dla PGSQL_BOTH. Domyślną wartością jest PGSQL_BOTH. http://algorytmy.pl/doc/php/

Pobranie wiersza (sposób 2) c.d.: $arr = pg_fetch_array ($result, 0, PGSQL_NUM); echo $arr[0]; $arr = pg_fetch_array ($result, 1, PGSQL_ASSOC); echo $arr["author"]; http://algorytmy.pl/doc/php/

Pobranie wiersza (sposób 3): object pg_fetch_object (resource result, int row [, int result_type]) pg_fetch_object() zwraca obiekt którego atrybutami są dane pobranego wiersza. Zwraca FALSE jeśli nie ma więcej wierszy lub wystąpił błąd. pg_fetch_object() jest podobna do pg_fetch_array(), z jedną róŝnicą - zwracany jest obiekt zamiast tablicy. Oznacza to Ŝe dane są dostępne tylko przez nazwy kolumn, a nie przez indeksy, gdyŝ liczby nie mogą być atrybutami obiektu. http://algorytmy.pl/doc/php/

Pobranie wiersza (sposób 3) c.d.: object pg_fetch_object (resource result, int row [, int result_type]) row numer wiersza do pobrania. Pierwszy wiersz ma numer 0. Pod względem szybkości funkcja ta jest identyczna jak pg_fetch_array(), i prawie tak szybka jak pg_fetch_row() (róŝnica jest nieznacząca). http://algorytmy.pl/doc/php/

Pobranie wiersza (sposób 3) c.d.: while ($data = pg_fetch_object ($result, $row)) { echo $data->imie." ("; echo $data->nazwisko."): "; echo $data->rok_urodzenia"<br>"; $row++; } http://algorytmy.pl/doc/php/

Pobranie nazwy pola: $nazwa_pola = pg_field_name($wynik, $k);

Zamknięcie połączenia z bazą: pg_close($dbh);

Sesje Sesje pozwalają na przechowywanie informacji i korzystanie z nich na róŝnych stronach w obrębie danego serwisu (np. stan koszyka)

Sesje Dwa sposoby przechowywania informacji o stanie: po stronie serwera po stronie klienta

Sesje Z sesją związane są dwa elementy: zmienne sesji przechowują stan róŝnych obiektów np. nazwy produktów w koszyku, ich liczba, czy uŝytkownik jest zalogowany, itd. identyfikator sesji 32 cyfry szesnastkowe wykorzystywany przez serwer do odnalezienia zmiennych sesji (dzięki identyfikatorom odróŝniane są od siebie róŝne sesje)

Sesje KaŜda sesja po pewnym czasie bezczynności powinna wygasać, poniewaŝ: uŝytkownik mógł opuścić stronę bez wylogowania przechowywanie informacji o sesji przez długi czas moŝe być niebezpieczne

Sesje Inicjowanie sesji session_start() Zmienne udostępniane za pośrednictwem superglobalnej tablicy asocjacyjnej: $_SESSION np. $_SESSION[ zamowienie_nr ] - zmienna sesji przechowująca numer zamówienia

Sesje Odnajdywanie istniejącej sesji podobnie jak przy tworzeniu: session_start()

Sesje Usuwanie zmiennych sesji usunięcie wybranej zmiennej: unset($_session[ zamowienie_nr ]) usunięcie wszystkich zmiennych: $_SESSION = array();

Sesje Zamykanie sesji session_destroy(); przed wywołaniem session_destroy() naleŝy wywołać session_start();