Czym jest PHP? Początki PHP to rok 1995, kiedy Rasmus Lerdorf opracował skrypt, którego zadaniem było zliczanie ile osób odwiedza jego witrynę i

Podobne dokumenty
PHP: bloki kodu, tablice, obiekty i formularze

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

Umieszczanie kodu. kod skryptu

1 Podstawy c++ w pigułce.

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

Oczywiście plik musi mieć rozszerzenie *.php

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

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

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Języki programowania wysokiego poziomu. PHP cz.2.

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

1 Podstawy c++ w pigułce.

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

Systemy internetowe Wykład 3 PHP

Autor: Joanna Karwowska

Programowanie w języku Python. Grażyna Koba

Języki skryptowe w programie Plans

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Bazy Danych i Usługi Sieciowe

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

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

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Bloki anonimowe w PL/SQL

Podstawy Programowania C++

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

ZMIENNE. Podstawy PHP

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

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

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

Laboratorium 1 Wprowadzenie do PHP

Dlaczego PHP? - zalety

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

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy JavaScript ćwiczenia

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

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

SSK - Techniki Internetowe

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

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

Personal Home Page PHP: Hypertext Preprocessor

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Smarty PHP. Leksykon kieszonkowy

Zmienne i stałe w PHP

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

Cw.12 JAVAScript w dokumentach HTML

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Aplikacje WWW - laboratorium

Dokumentacja smsapi wersja 1.4

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

Pętle. Dodał Administrator niedziela, 14 marzec :27

Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

FORMULARZE. G. Przęczek

Podstawy technologii WWW

Podstawy programowania skrót z wykładów:

Ćwiczenie: JavaScript Cookies (3x45 minut)

Bazy danych i strony WWW

Podstawy Programowania Podstawowa składnia języka C++

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Krótki kurs JavaScript

JAVAScript w dokumentach HTML (1)

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy programowania III WYKŁAD 2

do drukowania tekstu służy funkcja echo <?php echo "hello world!";?> jeżeli użyjemy jej kilka razy: <?php

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Składowane procedury i funkcje

Materiały do laboratorium MS ACCESS BASIC

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

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

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

Wprowadzenie do Doctrine ORM

Lekcja 7 Tablice. Definiowanie tablicy

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Programowanie internetowe

JAVAScript w dokumentach HTML (2)

Projekt Hurtownia, realizacja skojarzeń dostawców i produktów

Część 4 życie programu

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

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

LibreOffice Calc VBA

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Aplikacje WWW - laboratorium

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Funkcje wbudowane PHP

WPROWADZENIE. Użycie PHP

Podstawy technologii WWW

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

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

1 Przygotował: mgr inż. Maciej Lasota

Wykład 4. SQL praca z tabelami 1

Transkrypt:

Czym jest PHP? Początki PHP to rok 1995, kiedy Rasmus Lerdorf opracował skrypt, którego zadaniem było zliczanie ile osób odwiedza jego witrynę i wyświetlanie tej informacji na stronie. Skrypt zyskał dużą popularność i Rasmus Lerdorf rozwinął go, w ten sposób powstało PHP 2.0 (1997). Od początku PHP jest projektem open source. Kolejne wersje dodawały wiele nowych możliwości. Najnowsza stabilna wersja to PHP 7.0 (grudzień 2015). Cały czas wspierane są poprzednie wersje 5.5 i 5.6. Oficjalna definicja PHP mówi: PHP jest językiem skryptowym osadzanym w kodzie HTML. Oznacza to, że komendy PHP mogą się przeplatać ze znacznikami HTML. Ułatwia to stworzenie dynamicznej strony WWW. Wystarczy w kodzie dokumentu HTML osadzić odpowiednie instrukcje PHP. Skrypty PHP są wykonywane po stronie serwera. Możliwości PHP to m.in. interakcja z bazami danych (natywna obsługa wielu najpopularniejszych), obsługa formularzy, tworzenie dynamicznych stron WWW. Więcej na http://php.net/

Jak działa PHP? PHP jest językiem używanym po stronie serwera, czyli kod jest przechowywany po stronie serwera, który udostępnia strony WWW przeglądarkom internetowym klientów. Kiedy użytkownik wchodzi na stronę WWW napisaną w PHP, serwer odczytuje instrukcje PHP i odpowiednio je przetwarza. Na przykład, kod PHP może odpowiadać za utworzenie dokumentu HTML, który następnie serwer przekaże przeglądarce.

Jak działa PHP? PHP jest językiem używanym po stronie serwera, czyli kod jest przechowywany po stronie serwera, który udostępnia strony WWW przeglądarkom internetowym klientów. Kiedy użytkownik wchodzi na stronę WWW napisaną w PHP, serwer odczytuje instrukcje PHP i odpowiednio je przetwarza. Na przykład, kod PHP może odpowiadać za utworzenie dokumentu HTML, który następnie serwer przekaże przeglądarce. Miejsce PHP w architekturze klient-serwer:

Jak działa PHP? PHP jest językiem używanym po stronie serwera, czyli kod jest przechowywany po stronie serwera, który udostępnia strony WWW przeglądarkom internetowym klientów. Kiedy użytkownik wchodzi na stronę WWW napisaną w PHP, serwer odczytuje instrukcje PHP i odpowiednio je przetwarza. Na przykład, kod PHP może odpowiadać za utworzenie dokumentu HTML, który następnie serwer przekaże przeglądarce. Skrypty PHP są wykonywane na serwerze, zatem do ich działania potrzebny jest serwer WWW zawierający interpreter PHP, np. Apache. Wygodnym środowiskiem, w którym można uruchamiać skrypty PHP jest XAMPP: darmowa i łatwa w instalacji dystrybucja Apache zawierająca m.in. PHP, Perl i MySQL-a. XAMPP jest wstępnie skonfigurowany i łatwy w użyciu. Strona domowa https://www.apachefriends.org/pl/index.html.

Składnia - podstawy Kod PHP umieszczamy w dokumencie HTML pomiędzy parą znaczników <?php?> Wszystko pomiędzy tymi znacznikami, zostanie potraktowane jako kod PHP. Skrypt PHP zapisujemy z rozszerzeniem.php.

Składnia - podstawy Przykładowy skrypt PHP: <html> <head> <title>pierwszy skrypt php</title> </head> <body> <?php echo "Przykładowy tekst na stronie";?> </body> </html>

Składnia - podstawy Przykładowy skrypt PHP: <html> <head> <title>pierwszy skrypt php</title> </head> <body> <?php echo "Przykładowy tekst na stronie";?> </body> </html> Instrukcja echo wyświetla to, co podamy jako argument. Tekst można podawać w cudzysłowiu lub w apostrofach. Każdą instrukcję kodu należy kończyć średnikiem.

Składnia - podstawy Przykładowy skrypt PHP: <html> <head> <title>pierwszy skrypt php</title> </head> <body> <?php echo "Przykładowy tekst na stronie";?> </body> </html> Instrukcja echo wyświetla to, co podamy jako argument. Tekst można podawać w cudzysłowiu lub w apostrofach. Każdą instrukcję kodu należy kończyć średnikiem. Używając XAMPPa, skrypty PHP zapisujemy w katalogu xampp/htdocs (najlepiej stworzyć kolejny podkatalog, np. moje). Skrypt test.php zapisany w katalogu moje będzie pod adresem http://localhost/moje/test.php

Komentarze Aby wstawić komentarz mieszczący się w jednym wierszu, używamy //. Komentarz blokowy: /* */. Uwaga. Na początku skryptu warto umieścić w komentarzach info o dacie utworzenia skryptu, autorze, przeznaczeniu skryptu. Nie powinno się zagnieżdżać komentarzy blokowych.

Zmienne PHP jest językiem słabo typowanym. Oznacza to, że zmienne nie mają nadanych sztywno typów, lecz w miarę potrzeby kompilator może niejawnie rzutować sobie typy na odpowiednie dla niego w danym momencie, tzn., dostosowuje zawartość zmiennej w sposób, w jaki potrafi. Zatem, PHP nie wymaga deklarowania zmiennych ani ich inicjalizowania. Podstawowe typy zmiennych to łańcuchowe (czyli zawierające tekst), liczbowe (całkowite i zmiennpprzecinkowe) oraz logiczne. Nazwa zmiennej w PHP musi zaczynać się od znaku $, np. $ile. PHP rozróżnia wielkie i małe litery w nazwach zmiennych. Nazwa zmiennej może zawierać litery, cyfry lub znak podkreślenia (ale cyfra nie może być na początku). Operator przypisania: $ile = 9. Wypisanie wartości zmiennej: echo $ile; lub echo "Licznik wynosi $ile"; Uwaga. W cudzysłowiu. Użycie apostrofów spowoduje wypisanie nazwy zmiennej a nie jej wartości.

Stałe Tworzenie stałej: define(nazwa, wartość). Uwaga. tak stworzona stała jest stałą globalną. Nazwa stałej musi zaczynać się od litery lub podkreślnika. PHP rozróżnia wielkość liter w nazwie stałej, np. <?php define(vat,23); define(vat,12); echo vat;// 23 echo VAT;// 12?> Można też stworzyć stałą w ten sposób, że PHP nie będzie zwracało uwagi na wielkość liter w nazwie, np. <?php define(cena,45,true); echo Cena;// 45?>

Łańcuchy Aby utworzyć zmienną typu łańcuchowego, wystarczy pod nazwę zmiennej przypisać dowolny łańcuch, np. $nazwisko= Nowak lub $imie="alicja", łańcuchy podajemy w apostrofach lub cudzysłowiach. uwaga. Jeżeli wewnątrz łańcucha pojawia się znak lub ", to należy taki znak poprzedzić przez symbol \ np. A\ Tomek lub "Powiedział \"To nie jest PHP\" " Jeżeli chcemy wyświetlić wartość zmiennej w obrębie innego tekstu, należy użyć echo lub print, tekst podajemy w cudzysłowiach: echo "Podałeś jako nazwisko: $nazwisko";

Łańcuchy Aby utworzyć zmienną typu łańcuchowego, wystarczy pod nazwę zmiennej przypisać dowolny łańcuch, np. $nazwisko= Nowak lub $imie="alicja", łańcuchy podajemy w apostrofach lub cudzysłowiach. uwaga. Jeżeli wewnątrz łańcucha pojawia się znak lub ", to należy taki znak poprzedzić przez symbol \ np. A\ Tomek lub "Powiedział \"To nie jest PHP\" " Jeżeli chcemy wyświetlić wartość zmiennej w obrębie innego tekstu, należy użyć echo lub print, tekst podajemy w cudzysłowiach: echo "Podałeś jako nazwisko: $nazwisko"; Operator łączenia napisów:. echo "Pierwszy tekst"."drugi tekst"; print "Podałeś jako nazwisko:".$nazwisko;

Niektóre funkcje tekstowe strlen() - zwraca długość tekstu int strlen ( string $string ) strtolower() - zamienia tekst na małe litery string strtolower ( string $string ) strtoupper() - zamienia tekst na wielkie litery string strtoupper ( string $string ) substr() - wycina podciąg od zadanej pozycji startowej i o podanej długości string substr ( string $string, int $start [, int $length ] )

Niektóre funkcje tekstowe strlen() - zwraca długość tekstu int strlen ( string $string ) strtolower() - zamienia tekst na małe litery string strtolower ( string $string ) strtoupper() - zamienia tekst na wielkie litery string strtoupper ( string $string ) substr() - wycina podciąg od zadanej pozycji startowej i o podanej długości string substr ( string $string, int $start [, int $length ] ) Dużo więcej funkcji na stronie http://php.net/manual/en/ref.strings.php

Liczby Typy liczbowe w PHP: liczby całkowite (integer), np. $a = 1234; $b = -123; lub zmiennoprzecinkowe (float), np. $a = 1.234; Zakres typu float zależy od platformy, zazwyczaj maksymalnie 1.8E308 z dokładnością do około 14 cyfr dziesiętnych.

Liczby Typy liczbowe w PHP: liczby całkowite (integer), np. $a = 1234; $b = -123; lub zmiennoprzecinkowe (float), np. $a = 1.234; Zakres typu float zależy od platformy, zazwyczaj maksymalnie 1.8E308 z dokładnością do około 14 cyfr dziesiętnych. Operatory liczbowe: +, -, *,/ oraz % (zwraca resztę z dzielenia); operatory inkrementacji $i++; ++$j; i dekrementacji $i ; $j;.

Funkcje matematyczne Pełna lista: http://php.net/manual/en/book.math.php Przykłady: float round ( float $value [, int $precision = 0] ) funkcja zaokrągla liczbę z zadaną precyzją

Funkcje matematyczne Pełna lista: http://php.net/manual/en/book.math.php Przykłady: float round ( float $value [, int $precision = 0] ) funkcja zaokrągla liczbę z zadaną precyzją, np. echo round(3.4); // 3 echo round(3.5); // 4 echo round(1.95583, 2); // 1.96 echo round(1241757, -3); // 1242000 echo round(5.045, 2); // 5.05 echo round(5.055, 2); // 5.06

Funkcje matematyczne Pełna lista: http://php.net/manual/en/book.math.php Przykłady: float round ( float $value [, int $precision = 0] ) funkcja zaokrągla liczbę z zadaną precyzją Formatowanie liczby: funkcja number_format(): string number_format ( float $number [, int $decimals = 0 ] ) string number_format ( float $number, int $decimals = 0, string $dec_point = ".", string $thousands_sep = "," ) Może przyjmować jeden, dwa lub cztery argumenty.

Funkcje matematyczne Pełna lista: http://php.net/manual/en/book.math.php Przykłady: float round ( float $value [, int $precision = 0] ) funkcja zaokrągla liczbę z zadaną precyzją Formatowanie liczby: funkcja number_format(): string number_format ( float $number [, int $decimals = 0 ] ) string number_format ( float $number, int $decimals = 0, string $dec_point = ".", string $thousands_sep = "," ) Może przyjmować jeden, dwa lub cztery argumenty. $number = 1234.56; // notacja angielska (default) $ang = number_format($number);// 1,235 // notacja polska $pol = number_format($number, 2,,, ); // 1 234,56

Instrukcja warunkowa If...Elseif...Else Możliwe formy instrukcji if: if (warunek) { instrukcje jeżeli true; } lub if (warunek) { instrukcje jeżeli true; } else { instrukcje jeżeli false; }

Instrukcja warunkowa If...Elseif...Else Możliwe formy instrukcji if: if (warunek1) { instrukcje jeżeli warunek1 true; } elseif (warunek2) { instrukcje jeżeli warunek2 true; } else { instrukcje jeżeli wszystkie warunki false; }

Instrukcja warunkowa switch Switch daje możliwość wyboru, który blok kodu ma zostać wykonany, w zależności od wartości zmiennej. switch (n) { case etykieta1: instrukcje jeżeli n=etykieta1; break; case etykieta2: instrukcje jeżeli n=etykieta2; break; case etykieta3: instrukcje jeżeli n=etykieta3; break;... default: instrukcje jeżeli n jest różne od wszystkich etykiet; }

Pętle W PHP mamy pętle: while do...while for foreach (przebiega tablicę)

Pętla WHILE Pętla WHILE wykonuje blok kodu, tak długo, jak długo zadany warunek jest prawdziwy. while (warunek jest true) { instrukcje do wykonania; }

Pętla WHILE Pętla WHILE wykonuje blok kodu, tak długo, jak długo zadany warunek jest prawdziwy. while (warunek jest true) { instrukcje do wykonania; } Przykład pętli WHILE: <?php $x = 1; while($x <= 5) { echo "Liczba x wynosi: $x <br>"; $x++; }?>

Pętla DO...WHILE Pętla DO...WHILE różni się od WHILE tym, że warunek sprawdzany jest na końcu, a nie na początku. Pętla DO...WHILE zawsze wykona się co najmniej raz. do { instrukcje do wykonania; } while (warunek jest true);

Pętla DO...WHILE Pętla DO...WHILE różni się od WHILE tym, że warunek sprawdzany jest na końcu, a nie na początku. Pętla DO...WHILE zawsze wykona się co najmniej raz. do { instrukcje do wykonania; } while (warunek jest true); Przykład: <?php $x = 1; do { echo "Liczba x wynosi: $x <br>"; $x++;} while($x <= 5)?>

Pętla FOR Pętla FOR wykonuje blok kodu określoną liczbę razy. for (wyrażenie początkowe; warunek; wyrażenie końcowe) { instrukcje do wykonania; }

Pętla FOR Pętla FOR wykonuje blok kodu określoną liczbę razy. for (wyrażenie początkowe; warunek; wyrażenie końcowe) { instrukcje do wykonania; } Przykład: <?php for ($x = 1; $x <= 5; $x++) { echo "Liczba x wynosi: $x <br>"; }?>

Tworzenie własnych funkcji Oprócz wbudowanych funkcji PHP, możemy tworzyć własne funkcje. Funkcja jest blok instrukcji, które mogą być wielokrotnie wykorzystywane w programie. Funkcja nie będzie wykonana natychmiast po załadowaniu się stron funkcja zostanie wykonana w momencie wywołania funkcji.

Tworzenie własnych funkcji Oprócz wbudowanych funkcji PHP, możemy tworzyć własne funkcje. Funkcja jest blok instrukcji, które mogą być wielokrotnie wykorzystywane w programie. Funkcja nie będzie wykonana natychmiast po załadowaniu się stron funkcja zostanie wykonana w momencie wywołania funkcji. Aby stworzyć funkcję, używamy słowa kluczowego function: function nazwafunkcji() { kod wykonywany; } Uwaga: PHP nie rozróżnia wielkości liter w nazwach funkcji. Nazwa funkcji może zaczynać się od litery lub podkreślnika.

Prosta funkcja bez parametrów <?php function wypisz(){ // definicja funkcji echo Hello! ;} echo To jest funkcja bez żadnych parametrów.<br> ; echo wypisz(); //wywołanie funkcji?>

Funkcja zwracajaca wartość: RETURN <?php function liczcos(){ // definicja funkcji $x=90; $x=round($x/7+15); return $x; } $liczba=liczcos(); echo Wynik funkcji:.$liczba;?>

Funkcja z parametrami wejścia <?php function sumaparzystych($start,$stop){ $suma=0; for($i=$start;$i<=$stop;$i++) if($i%2==0){$suma+=$i;} return $suma; }?>

Funkcja z parametrami wejścia <?php function sumaparzystych($start,$stop){ $suma=0; for($i=$start;$i<=$stop;$i++) if($i%2==0){$suma+=$i;} return $suma; }?> Parametrom można nadawać wartości domyślne, np. function sumaparzystych($start=0,$stop=10) Wywołanie to np. $x=sumaparzystych(4); $y=sumaparzystych(); W wywołaniu funkcji, można pominąć wartości dla parametrów, które mają określoną wartość domyślną. Nie można zmienić kolejności podawania parametrów w wywołaniu, ale można jako wartość parametru podać NULL, FALSE lub pusty łańcuch.

Tablice w PHP Zmienna w PHP może być zdefiniowana jako tablica, czyli lista wartości (tablica może przechowywać wartości tekstowe, liczby lub inne tablice). Tablice mają postać serii par klucz->wartość (z każdym elementem tablicy skojarzony jest pewien klucz, czyli indeks). Dwa typy tablic: indeksowane (klucze są liczbami całkowitymi, domyślnie indeksowane od 0); skojarzeniowe (asocjacyjne) (klucze są łańcuchami znaków). Reguły nadawania nazw tablicom są takie same jak dla pozostałych zmiennych, tzn. zaczynamy od znaku $, wielkość liter ma znaczenie.

Tablice indeksowane Tworzenie tablicy indeksowanej: 1) Indeks nadawany automatycznie (startuje od 0): $grupy=array("21iie","31id","32id"); 2) Można też podać kolejne elementy i ich indeksy: $kierunki[0]="mat"; $kierunki[1]="id"; 3) Lub użyć instrukcji array, określając indeks początkowy, kolejne będą automatycznie powiększane o 1: $dni=array(1=> pon, wto, śro );

Tablice indeksowane Tworzenie tablicy indeksowanej: 1) Indeks nadawany automatycznie (startuje od 0): $grupy=array("21iie","31id","32id"); 2) Można też podać kolejne elementy i ich indeksy: $kierunki[0]="mat"; $kierunki[1]="id"; 3) Lub użyć instrukcji array, określając indeks początkowy, kolejne będą automatycznie powiększane o 1: $dni=array(1=> pon, wto, śro ); Aby odwołać się do elementu tablicy, używamy jego klucza, np. echo $grupy[0]; // 21IiE echo $kierunki[1]; // id echo $dni[3]; // sro Można też najpierw zainicjować tablicę poprzez array, a potem się do niej odwołać (nie jest to wymagane, ale zalecane): $tab1=array(); $tab1[]= pierwszy element ;

Tablice indeksowane Aby przejrzeć kolejne elementy tablicy, można użyć pętli for, np. <?php $tab1=array(); $tab1[]= buty ; $tab1[]= sukienka ; $tab1[]= torebka ; $ile=count($tab1); for ($i=0;$i<$ile;$i++){ echo element.$i. to.$tab1[$i]; echo <br> ;}?> Funkcja count() zwraca liczbę elementów tablicy (zarówno ideksowanej jak asocjacyjnej)

Tablice indeksowane Aby przejrzeć kolejne elementy tablicy, można użyć pętli for, np. <?php $tab1=array(); $tab1[]= buty ; $tab1[]= sukienka ; $tab1[]= torebka ; $ile=count($tab1); for ($i=0;$i<$ile;$i++){ echo element.$i. to.$tab1[$i]; echo <br> ;}?> Funkcja count() zwraca liczbę elementów tablicy (zarówno ideksowanej jak asocjacyjnej), np. $tab2[0]=0; $tab2[4]=9; $ilosc=count($tab2); echo $ilosc; //2

Tablice indeksowane Aby przejrzeć kolejne elementy tablicy, można użyć pętli for, np. <?php $tab1=array(); $tab1[]= buty ; $tab1[]= sukienka ; $tab1[]= torebka ; $ile=count($tab1); for ($i=0;$i<$ile;$i++){ echo element.$i. to.$tab1[$i]; echo <br> ;}?> Funkcja count() zwraca liczbę elementów tablicy (zarówno ideksowanej jak asocjacyjnej) Pętla for może sprawiać problemy, jeżeli w tablicy niektóre indeksy są pominięte, lepiej użyć wtedy pętli foreach: foreach ($tab2 as $value) { echo $value;}

Tablice asocjacyjne Klucze są wartościami tekstowymi. Tworzenie tablicy asocjacyjnej: 1) Wykorzystując array: $tablice_rej=array( F => lubuskie, S => sląskie, P => pomorskie ); 2) Podając kolejne elementy i ich klucze: $osoba[ imię ]= Alicja ; $osoba[ nazwisko ]= Nowak ;

Tablice asocjacyjne Klucze są wartościami tekstowymi. Tworzenie tablicy asocjacyjnej: 1) Wykorzystując array: $tablice_rej=array( F => lubuskie, S => sląskie, P => pomorskie ); 2) Podając kolejne elementy i ich klucze: $osoba[ imię ]= Alicja ; $osoba[ nazwisko ]= Nowak ; Aby uzyskać dostęp do elementu tablicy, trzeba albo znać dokładną wartość klucza, np. echo $osoba[ nazwisko ]; lub echo "{$osoba[ imię ]}"; (w nawiasach klamrowych!)

Tablice asocjacyjne Klucze są wartościami tekstowymi. Tworzenie tablicy asocjacyjnej: 1) Wykorzystując array: $tablice_rej=array( F => lubuskie, S => sląskie, P => pomorskie ); 2) Podając kolejne elementy i ich klucze: $osoba[ imię ]= Alicja ; $osoba[ nazwisko ]= Nowak ; Aby uzyskać dostęp do elementu tablicy, trzeba albo znać dokładną wartość klucza, np. echo $osoba[ nazwisko ]; lub echo "{$osoba[ imię ]}"; (w nawiasach klamrowych!) albo użyć pętli foreach: <?php $osoba = array("imię"=>"alicja", "nazwisko"=>"nowak", "wiek"=>32); foreach($osoba as $x => $x_value) { echo "Klucz=". $x. ", wartość=". $x_value; echo "<br>"; }?>

Tworzenie tablic - range() array range ( mixed $start, mixed $end [, number $step = 1 ] ) tworzy tablicę zawierającą kolejne elementy z podanego zakresu; jako wartość startową $start i końcową $end można podać liczby całkowite, dostaniemy wówczas tablicę liczb od $start do $end, np. $tab_liczb=range(1,10); // array(0, 1, 2,..., 12) Można też tworzyć tablice zawierające kolejne litery, np. $tab_liter=range( b, d ); // array( b, c, d ) Argument $step określa krok, z jakim są generowane kolejne wartości, domyślnie =1. $tab_co10=range(10, 100, 10);// array(10,20,...,100)

Niektóre użyteczne funkcje dla tablic count() - zwraca liczbę elementów tablicy bool is_array ( mixed $var ) - aby sprawdzić, czy zmienna jest tablicą void unset ( mixed $var [, mixed $... ] ) - aby usunąć dany element lub całą tablicę (wykorzystywana nie tylko dla tablic): <?php $a = array(1 => one, 2 => two, 3 => three ); unset($a[2]);// zostaną elementy o indeksach 1 i 3 //aby przeindeksować użyj array_values: $b = array_values($a);// $b ma indeksy od 0 unset($a);// usunie $a?> array array_values ( array $array ) zwraca tablicę po przeindeksowaniu, można wykorzystać, aby ponownie poindeksować tablicę kolejnymi liczbami całkowitymi (od 0), jeżeli z tablicy usunięto niektóre elementy

Tablice wielowymiarowe Jeżeli elementami danej tablicy są też tablice, mamy do czynienia z tablicą wielowymiarową. W tym przykładzie, najpierw tworzymy tablicę $student, którą następnie umieszczamy jako kolejny element w tablicy $grupa. <?php $student[0] = "Jan"; $student[1] = "Kowalski"; $student[2] = "14-10-1995"; $grupa[0] = $student; $student[0] = "Maciej"; $student[1] = "Nowak"; $student[2] = "24-12-1994"; $grupa[1] = $student; $student[0] = "Ewa"; $student[1] = "Kowalska"; $student[2] = "17-03-1996"; $grupa[2] = $student;?>

Tablice wielowymiarowe Tworzenie tablicy: <?php $student[0] = "Jan"; $student[1] = "Kowalski"; $student[2] = "14-10-1995"; $grupa[0] = $student; $student[0] = "Maciej"; $student[1] = "Nowak"; $student[2] = "24-12-1994"; $grupa[1] = $student; $student[0] = "Ewa"; $student[1] = "Kowalska"; $student[2] = "17-03-1996"; $grupa[2] = $student;?> Przeglądanie tablicy: <?php //można wybrać pojedynczy element: echo $grupa[0][0]; //lub wyświetlić całą tablicę za pomocą foreach: foreach($grupa as $osoba) {echo "Dane studenta: "; foreach($osoba as $pole) echo $pole." "; echo "<br>";}?>

Indeksy liczbowe można zastąpić kluczami tekstowymi. <?php $student["imie"] = "Jan"; $student["nazwisko"] = "Bob"; $student["data_ur"] = <?php //można wybrać pojedynczy "14-10-1995"; element: $grupa[0] = $student; echo $grupa[0]["imie"]; $student["imie"] = "Iza"; $student["nazwisko"] = "Nowak"; $student["data_ur"] = "24-12-1994"; $grupa[1] = $student; $student["imie"] = "Ewa"; $student["nazwisko"] = "Kos"; $student["data_ur"] = "17-03-1996"; $grupa[2] = $student;?> //lub wyświetlić całą tablicę za pomocą foreach: foreach($grupa as $osoba) {echo "Dane studenta: "; foreach($osoba as $key=> $value) echo $key." : ".$value." "; echo "<br>";}?>

Sortowanie tablic W PHP mamy do dyspozycji wiele funkcji służących do sortowania tablic. Funkcja sort() umożliwia sortowanie (rosnące) wartości tablicy, porzucając istniejące klucze (czyli klucze zostają zresetowane), np. $imiona=array( Olek, Bolek, Janek ); sort($imiona); echo $imiona[0]; // Bolek Jeżeli związki klucz=>wartość mają znaczenie, należy użyć funkcji asort(), która sortuje tablicę po wartościach, nie zmieniając kluczy. Funkcja ksort() sortuje tablicę po wartościach kluczy. Odpowiedniki tych funkcji do sortowania malejącego: rsort(), arsort(), krsort().

Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza.

Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form>

Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form> Uwaga. należy zwracać uwagę na nazwy nadawane polom formularza, bo w skrypcie PHP będziemy się do nich odwoływać.

Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form> Uwaga. należy zwracać uwagę na nazwy nadawane polom formularza, bo w skrypcie PHP będziemy się do nich odwoływać. Wybór metody GET czy POST? Obie metody tworzą listę (tablicę), która przechowuje pary klucz/wartość, gdzie klucz to nazwa odpowiedniego pola formularza, a wartość to dane wpisane przez użytkownika.

Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form> Uwaga. należy zwracać uwagę na nazwy nadawane polom formularza, bo w skrypcie PHP będziemy się do nich odwoływać. Wybór metody GET czy POST? Obie metody tworzą listę (tablicę), która przechowuje pary klucz/wartość, gdzie klucz to nazwa odpowiedniego pola formularza, a wartość to dane wpisane przez użytkownika. GET: informacja jest widoczna (nazwy pól i ich wartości są widoczne w adresie); limit informacji, którą można przesłać - około 2000 znaków; wygodna, gdy chcemy stworzyć zakładkę do tej strony.

Obsługa formularzy HTML (1) Utworzenie formularza. (2) Napisanie skryptu PHP, który odbiera i przetwarza dane z formularza. <form action="skrypt.php" method="post"> pola formularza (tekstowe, wyboru, przyciski, itp.) <\form> Uwaga. należy zwracać uwagę na nazwy nadawane polom formularza, bo w skrypcie PHP będziemy się do nich odwoływać. Wybór metody GET czy POST? Obie metody tworzą listę (tablicę), która przechowuje pary klucz/wartość, gdzie klucz to nazwa odpowiedniego pola formularza, a wartość to dane wpisane przez użytkownika. GET: informacja jest widoczna (nazwy pól i ich wartości są widoczne w adresie); limit informacji, którą można przesłać - około 2000 znaków; wygodna, gdy chcemy stworzyć zakładkę do tej strony. POST: preferowana; informacje nie są widoczne; nie ma limitu; ale - nie można zapisać adresu.

Skrypt PHP odbiera dane z formularza za pomocą specjalnych zmiennych. Na przykład, w formularzu mamy pole "cena": <input type="text" name="cena"/> Skrypt PHP, który odbiera dane z formularza, przypisuje wartość wprowadzoną przez użytkownika do pola cena do specjalnej zmiennej $_REQUEST["cena"] (jeżeli formularz jest przesyłany za pomocą POST, to wartość pola cena można też odczytać ze zmiennej $_POST["cena"], jeżeli za pomocą GET, to z $_GET["cena"]).

Skrypt PHP odbiera dane z formularza za pomocą specjalnych zmiennych. Na przykład, w formularzu mamy pole "cena": <input type="text" name="cena"/> Skrypt PHP, który odbiera dane z formularza, przypisuje wartość wprowadzoną przez użytkownika do pola cena do specjalnej zmiennej $_REQUEST["cena"] (jeżeli formularz jest przesyłany za pomocą POST, to wartość pola cena można też odczytać ze zmiennej $_POST["cena"], jeżeli za pomocą GET, to z $_GET["cena"]). Zmienne $_REQUEST, $_GET, $_POST to predefiniowane zmienne w PHP, będące zmiennymi "superglobalnymi" (a dokładniej, tablicami "superglobalnymi"). Zmienna $_GET przechowuje wszystkie zmienne i wartości przesyłane metodą GET, analogicznie $_POST, obie są podzbiorami zmiennej $_REQUEST.

Weryfikacja danych z formularza Weryfikacja danych pochodzących z formularza jest niezbędna aby zapewnić bezpieczeństwo i poprawne działanie systemu. Dane weryfikuje się, aby sprawdzić, czy podano wszystkie wymagane informacje oraz czy są to informacje odpowiedniego typu, w określonym formacie lub mające odpowiednią wartość. Funkcje często wykorzystywane to isset() - zwraca TRUE, jeżeli zmiennej przypisano jakąś wartość (ale może to być w szczególności 0, FALSE lub pusty łańcuch). Jeżeli chcemy sprawdzić, czy w polu tekstowym wpisano wartość - funkcja empty(), która sprawdza, czy zmienna posiada pusta wartość, czyli pusty łańcuch, 0, NULL lub FALSE.

Weryfikacja danych z formularza Weryfikacja danych pochodzących z formularza jest niezbędna aby zapewnić bezpieczeństwo i poprawne działanie systemu. Dane weryfikuje się, aby sprawdzić, czy podano wszystkie wymagane informacje oraz czy są to informacje odpowiedniego typu, w określonym formacie lub mające odpowiednią wartość. Funkcje często wykorzystywane to isset() - zwraca TRUE, jeżeli zmiennej przypisano jakąś wartość (ale może to być w szczególności 0, FALSE lub pusty łańcuch). Jeżeli chcemy sprawdzić, czy w polu tekstowym wpisano wartość - funkcja empty(), która sprawdza, czy zmienna posiada pusta wartość, czyli pusty łańcuch, 0, NULL lub FALSE. Do weryfikacji poprawności danych z formularza stosuje się też wyrażenia regularne.

Połaczenie PHP i Oracle Każda aplikacja PHP/Oracle musi zadbać przynajmniej o dwa zadania: nawiązanie połączenia z bazą danych oraz wykonanie polecenia bądź poleceń SQL względem tej bazy danych. Typowa aplikacja będzie miała za zadanie pobierać dane wejściowe użytkownika, a następnie wykonywać zapytanie SQL, które powoduje umieszczenie pobranych danych w bazie danych oraz pobierać dane otrzymane z bazy danych oraz wyświetlać je użytkownikowi.

Połaczenie PHP i Oracle Każda aplikacja PHP/Oracle musi zadbać przynajmniej o dwa zadania: nawiązanie połączenia z bazą danych oraz wykonanie polecenia bądź poleceń SQL względem tej bazy danych. Typowa aplikacja będzie miała za zadanie pobierać dane wejściowe użytkownika, a następnie wykonywać zapytanie SQL, które powoduje umieszczenie pobranych danych w bazie danych oraz pobierać dane otrzymane z bazy danych oraz wyświetlać je użytkownikowi. W celu wykonania tych zadań, można wykorzystać rozszerzenie PHP o nazwie OCI8.

Połaczenie PHP i Oracle Każda aplikacja PHP/Oracle musi zadbać przynajmniej o dwa zadania: nawiązanie połączenia z bazą danych oraz wykonanie polecenia bądź poleceń SQL względem tej bazy danych. Typowa aplikacja będzie miała za zadanie pobierać dane wejściowe użytkownika, a następnie wykonywać zapytanie SQL, które powoduje umieszczenie pobranych danych w bazie danych oraz pobierać dane otrzymane z bazy danych oraz wyświetlać je użytkownikowi. W celu wykonania tych zadań, można wykorzystać rozszerzenie PHP o nazwie OCI8. Rozszerzenie PHP OCI8 jest biblioteką umożliwiająca współprace technologii PHP i Oracle. Zaletą stosowania tego rozszerzenia jest m.in. fakt, że jest dedykowane dla Oracle a i oferuje dużą liczbę opcji. Pozwala programiście na kontrolowanie wszystkich faz wykonywania polecenia SQL.

Rozszerzenie PHP OCI8 Uwaga. Obsługa rozszerzenie PHP OCI8 domyślnie nie jest włączona. Aby włączyć obsługę tego rozszerzenia w istniejącej instalacji PHP, należy (1) przeprowadzić instalację bibliotek Oracle Client wymaganych przez rozszerzenie PHP OCI8 (lub użyć pakietu Oracle Instant Client); w sytuacji gdy zarówno baza danych, jak i serwer WWW zostały zainstalowane na tym samym komputerze, dostępne są wszystkie wymagane komponenty Oracle nie ma potrzeby doinstalowywania dodatkowych bibliotek; (2) usunąć znak komentarza z wiersza rozszerzenia OCI8 w pliku konfiguracyjnym php.ini; (3) ponownie uruchomić serwer Apache.

Nawiazywanie połaczenia z Oracle za pomoca rozszerzenia OCI8 Stosowanie metod Local Naming i Easy Connect do nawiązania połączenia z bazą danych Oracle z poziomu PHP. Local Naming: należy utworzyć deskryptor poł aczenia, który zawiera szczegółowe informacje o lokalizacji bazy danych, z którą ma nastąpić połączenie; mianowicie, składa się z nazwy sieciowej (lub adresu IP) komputera, portu, na którym działa proces Oracle Net oraz SID bazy danych (nazwa usługi bazy danych), np.

Nawiazywanie połaczenia z Oracle za pomoca rozszerzenia OCI8 Stosowanie metod Local Naming i Easy Connect do nawiązania połączenia z bazą danych Oracle z poziomu PHP. Local Naming: należy utworzyć deskryptor poł aczenia, który zawiera szczegółowe informacje o lokalizacji bazy danych, z którą ma nastąpić połączenie; mianowicie, składa się z nazwy sieciowej (lub adresu IP) komputera, portu, na którym działa proces Oracle Net oraz SID bazy danych (nazwa usługi bazy danych), np. $dbhost = "localhost"; $dbhostport="1521"; $dbservicename = "xe"; $dbconnstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=".$dbHost.")(PORT=".$dbHostPort.")) (CONNECT_DATA=(SERVICE_NAME=".$dbServiceName.")))";

Nawiazywanie połaczenia z Oracle za pomoca rozszerzenia OCI8 Stosowanie metod Local Naming i Easy Connect do nawiązania połączenia z bazą danych Oracle z poziomu PHP. Easy Connect: W środowisku TCP/IP istnieje możliwość wykorzystania metody Easy Connect Naming, która umożliwia nawiązanie połączenia z serwerem bazy danych poprzez proste podanie nazwy użytkownika i hasła oraz nazwy komputera serwera wraz z dwoma opcjonalnymi parametrami: nazwa usługi bazy danych i numer portu, na którym proces Oracle Net oczekuje na połączenia.

Nawiazywanie połaczenia z Oracle za pomoca rozszerzenia OCI8 Stosowanie metod Local Naming i Easy Connect do nawiązania połączenia z bazą danych Oracle z poziomu PHP. Easy Connect: W środowisku TCP/IP istnieje możliwość wykorzystania metody Easy Connect Naming, która umożliwia nawiązanie połączenia z serwerem bazy danych poprzez proste podanie nazwy użytkownika i hasła oraz nazwy komputera serwera wraz z dwoma opcjonalnymi parametrami: nazwa usługi bazy danych i numer portu, na którym proces Oracle Net oczekuje na połączenia. $dbeasyconn = "//SerwerBazyDanych:port/SID"; np. $dbeasyconn = "//localhost:1521/xe";

Nawiazywanie połaczenia z baza danych Oracle z poziomu PHP: funkcji oci_connect() W celu nawiązania połączenia z bazą danych Oracle, można wykorzystać funkcję oci_connect(). Wartością zwrotną funkcji jest uchwyt połączenia z bazą danych, który następnie jest używany przez inne metody rozszerzenia OCI8.

Nawiazywanie połaczenia z baza danych Oracle z poziomu PHP: funkcji oci_connect() W celu nawiązania połączenia z bazą danych Oracle, można wykorzystać funkcję oci_connect(). Wartością zwrotną funkcji jest uchwyt połączenia z bazą danych, który następnie jest używany przez inne metody rozszerzenia OCI8. Połączenie z bazą z użyciem metody Local Naming ($dbconnstr zawiera deskryptor połączenia): $dbconn = oci_connect($usr,$passwd,$dbconnstr);

Nawiazywanie połaczenia z baza danych Oracle z poziomu PHP: funkcji oci_connect() W celu nawiązania połączenia z bazą danych Oracle, można wykorzystać funkcję oci_connect(). Wartością zwrotną funkcji jest uchwyt połączenia z bazą danych, który następnie jest używany przez inne metody rozszerzenia OCI8. Połączenie z bazą z użyciem metody Local Naming ($dbconnstr zawiera deskryptor połączenia): $dbconn = oci_connect($usr,$passwd,$dbconnstr); Przy użyciu Easy Connect: $dbeasyconn = "//SerwerBazyDanych:port/SID"; $dbconn = oci_connect($usr,$pswd,$dbeasyconn);

Przykład <?php $usr = "hr"; $pswd = "misiu124"; $dbeasyconnect="//localhost/xe"; if(!$dbconn = oci_connect($usr,$pswd,$dbeasyconnect)) { $err = oci_error(); trigger_error( Nie można nawiązać połączenia:. $err[ message ], E_USER_ERROR); };?>

Przykład <?php $usr = "hr"; $pswd = "misiu124"; $dbeasyconnect="//localhost/xe"; if(!$dbconn = oci_connect($usr,$pswd,$dbeasyconnect)) { $err = oci_error(); trigger_error( Nie można nawiązać połączenia:. $err[ message ], E_USER_ERROR); };?> Uwaga. Użyto funkcję oci_error(): jeżeli wystąpi błąd podczas nawiązywania połączenia, następuje wywołanie funkcji oci_error() a następnie przerwanie wykonania skryptu poprzez wywołanie funkcji trigger_error().

Przetwarzanie zapytań SELECT Ogólne kroki wymagane do przetworzenia polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse().

Przetwarzanie zapytań SELECT Ogólne kroki wymagane do przetworzenia polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse(). Krok 2. (wymagany): wykonanie przygotowanego polecenia poprzez użycie funkcji oci_execute().

Przetwarzanie zapytań SELECT Ogólne kroki wymagane do przetworzenia polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse(). Krok 2. (wymagany): wykonanie przygotowanego polecenia poprzez użycie funkcji oci_execute(). Krok 3. (opcjonalny, ale zalecany): sprawdzenie wartości zwrotnej wywołania funkcji oci_execute(). Jeżeli funkcja oci_execute() zwróciła wartość false, wskazuje ona na nieudaną próbę wykonania zapytania. W takim przypadku trzeba wykorzystać funkcję oci_error(), która pozwala na pobranie z Oracle opisu błędu oraz jego kodu.

Przetwarzanie zapytań SELECT Ogólne kroki wymagane do przetworzenia polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse(). Krok 2. (wymagany): wykonanie przygotowanego polecenia poprzez użycie funkcji oci_execute(). Krok 3. (opcjonalny, ale zalecany): sprawdzenie wartości zwrotnej wywołania funkcji oci_execute(). Jeżeli funkcja oci_execute() zwróciła wartość false, wskazuje ona na nieudaną próbę wykonania zapytania. W takim przypadku trzeba wykorzystać funkcję oci_error(), która pozwala na pobranie z Oracle opisu błędu oraz jego kodu. Krok 4. (wymagany): pobrać wyniki zapytania, poprzez jedną z funkcji pobierania rozszerzenia OCI8: oci_fetch_all() pobiera wszystkie rekordy zbioru wynikowego i umieszcza je w tablicy zdefiniowanej przez użytkownika; oci_fetch() pobiera dane do buforu, skąd można odczytywać je za pomocą funkcji oci_result().

Przygotowywanie poleceń SQL do wykonania Kroki poprzedzające: ustanowienie połączenia z bazą danych oraz zdefiniowanie ciągu tekstowego zapytania. Przygotowanie polecenia do wykonania: funkcja oci_parse(), której jako argumenty należy przekazać połączenie z bazą danych oraz ciąg tekstowy polecenia SQL. Funkcja oci_parse() zwraca identyfikator polecenia, który z kolei może być później przekazany np. funkcji oci_execute() jako pierwszy argument.

Przygotowywanie poleceń SQL do wykonania Kroki poprzedzające: ustanowienie połączenia z bazą danych oraz zdefiniowanie ciągu tekstowego zapytania. Przygotowanie polecenia do wykonania: funkcja oci_parse(), której jako argumenty należy przekazać połączenie z bazą danych oraz ciąg tekstowy polecenia SQL. Funkcja oci_parse() zwraca identyfikator polecenia, który z kolei może być później przekazany np. funkcji oci_execute() jako pierwszy argument. $strsql = "SELECT TO_CHAR(SYSDATE, HH:MI:SS ) czas FROM DUAL"; $statement = oci_parse($dbconn,$strsql); $strsql - tekst polecenia SQL; $dbconn - uchwyt do połączenia; $statement - identyfikator polecenia

Wykonywanie poleceń SQL Do wykonywania wcześniej przeanalizowanych poleceń używana jest funkcja oci_execute(). Jako swój pierwszy parametr pobiera ona identyfikator polecenia zwrócony przez funkcję oci_parse(); domyślnym trybem wykonywania jest OCI_COMMIT_ON_SUCCESS; polecenie zostaje automatycznie zatwierdzone. Funkcja może też pobrać inny tryb wykonania przekazany w formie opcjonalnego drugiego parametru.

Wykonywanie poleceń SQL Do wykonywania wcześniej przeanalizowanych poleceń używana jest funkcja oci_execute(). Jako swój pierwszy parametr pobiera ona identyfikator polecenia zwrócony przez funkcję oci_parse(); domyślnym trybem wykonywania jest OCI_COMMIT_ON_SUCCESS; polecenie zostaje automatycznie zatwierdzone. Funkcja może też pobrać inny tryb wykonania przekazany w formie opcjonalnego drugiego parametru. $strsql = "SELECT TO_CHAR(SYSDATE, HH:MI:SS ) czas FROM DUAL"; $statement = oci_parse($dbconn,$strsql); if (!oci_execute($statement)) { $err = oci_error($statement); trigger_error( Zapytanie zakończyło się niepowodzeniem:. $err[ message ], E_USER_ERROR); };

Wykonywanie poleceń SQL Do wykonywania wcześniej przeanalizowanych poleceń używana jest funkcja oci_execute(). Jako swój pierwszy parametr pobiera ona identyfikator polecenia zwrócony przez funkcję oci_parse(); domyślnym trybem wykonywania jest OCI_COMMIT_ON_SUCCESS; polecenie zostaje automatycznie zatwierdzone. Funkcja może też pobrać inny tryb wykonania przekazany w formie opcjonalnego drugiego parametru. Podczas wykonywania poleceń SELECT za pomocą funkcji oci_execute() wyniki zapytania zostają umieszczone w pamięci i nie są dostępne natychmiast. Aby wykorzystać te dane, należy wcześniej je pobrać, używając w tym celu jednej z funkcji pobierania rozszerzenia OCI8.

Wykonywanie poleceń SQL Do wykonywania wcześniej przeanalizowanych poleceń używana jest funkcja oci_execute(). Jako swój pierwszy parametr pobiera ona identyfikator polecenia zwrócony przez funkcję oci_parse(); domyślnym trybem wykonywania jest OCI_COMMIT_ON_SUCCESS; polecenie zostaje automatycznie zatwierdzone. Funkcja może też pobrać inny tryb wykonania przekazany w formie opcjonalnego drugiego parametru. Podczas wykonywania poleceń SELECT za pomocą funkcji oci_execute() wyniki zapytania zostają umieszczone w pamięci i nie są dostępne natychmiast. Aby wykorzystać te dane, należy wcześniej je pobrać, używając w tym celu jednej z funkcji pobierania rozszerzenia OCI8. Niezależnie od tego, czy wykonywania jest operacja DML, czy zapytanie, wartością zwrotną funkcji oci_execute() jest true w przypadku powodzenia lub false po niepowodzeniu wykonania. Dobrym rozwiązaniem jest upewnienie się, że wykonanie funkcji zakończyło się powodzeniem, a w przypadku niepowodzenia należy wygenerować komunikat ostrzeżenia bądź błędu.

Używanie funkcji oci_error() Typowa funkcja rozszerzenia OCI8 zwraca kod stanu, który wskazuje powodzenie danej operacji. Jeżeli wartością zwrotną będzie false, skrypt może wywołać funkcję oci_error() w celu pobrania komunikatu błędu. Zazwyczaj uchwyt odpowiedniego zasobu zostaje przekazany jako parametr funkcji oci_error(). W przypadku błędów dotyczących połączenia istnieje możliwość wywołania funkcji oci_error() bez parametru. Wartością zwrotną funkcji oci_error() jest tablica asocjacyjna, która zawiera informacje dotyczące błędu. Funkcja oci_error() jest często używana w połączeniu z funkcją trigger_error(), np.: $err = oci_error($stmt); trigger_error($err[ message ]);

Używanie funkcji trigger_error() Obsługa błędów powstałych w trakcie działania aplikacji PHP - użycie funkcji trigger_error(). Funkcja ma dwa parametry - komunikat opisujący błąd, oraz opcjonalny drugi parametr przedstawiający rodzaj błędu. Jako drugi parametr używamy jednej ze stałych: Zdefiniowana stała E_USER_ERROR E_USER_WARNING E_USER_NOTICE Opis Błąd krytyczny, powoduje przerwanie wykonywania pozostałej części skryptu. Ten poziom błędu jest zazwyczaj stosowany, gdy wykonywanie skryptu po wystąpieniu danego błędu nie ma większego sensu. Ostrzeżenie (błąd bez znaczenia krytycznego). Ten poziom błędu pozwala na kontynuowanie wykonywania skryptu. Wygenerowanie uwagi. Ten poziom błędu pozwala na kontynuowanie wykonywania skryptu. Uwaga jest zazwyczaj generowana w odpowiedzi na zdarzenie, które niekoniecznie musi być błędem, ale może wystąpić podczas zwykłego wykonywania skryptu.

Pobieranie wyników zapytania SELECT za pomoca funkcji OCI8 Jeżeli wartością zwrotną wywołania funkcji oci_execute() będzie true, można przejść do etapu pobierania wyników. Funkcje rozszerzenia OCI8, które służa do pobierania wyników. Pobieranie rekordów ze zbioru wynikowego i umieszczanie ich w tablicy zdefiniowanej przez użytkownika: oci_fetch_assoc() Funkcja zwraca kolejny rekord ze zbioru wynikowego jako tablicę asocjacyjną (odwoływanie się do pól za pomocą nazw). oci_fetch_row() Funkcja zwraca kolejny rekord ze zbioru wynikowego jako tablicę indeksowaną. oci_fetch_array() Funkcja zwraca kolejny rekord ze zbioru wynikowego jako tablicę. Opcjonalny drugi parametr pozwala na określenie rodzaju tablicy (asocjacyjna, indeksowana bądź obie). Jeżeli nie będzie więcej rekordów zbioru wynikowego do pobrania, każda z tych funkcia zwróci wartość false.

Pobieranie wyników zapytania SELECT za pomoca funkcji OCI8 Funkcje rozszerzenia OCI8, które służa do pobierania wyników. oci_fetch() Funkcja pobiera kolejny rekord ze zbioru wynikowego i umieszcza go w wewnętrznym buforze wyników. Następnie do pobrania danych z bufora należy użyć funkcji oci_result(). oci_fetch_all() Funkcja pobiera jednocześnie wszystkie rekordy zwrócone przez zapytanie i umieszcza je w tablicy zdefiniowanej przez użytkownika. Wartością zwrotną jest liczba pobranych rekordów bądź wartość false w przypadku niepowodzenia operacji.

Pobieranie wyników zapytania SELECT za pomoca funkcji OCI8 Funkcje rozszerzenia OCI8, które służa do pobierania wyników. oci_fetch() Funkcja pobiera kolejny rekord ze zbioru wynikowego i umieszcza go w wewnętrznym buforze wyników. Następnie do pobrania danych z bufora należy użyć funkcji oci_result(). oci_fetch_all() Funkcja pobiera jednocześnie wszystkie rekordy zwrócone przez zapytanie i umieszcza je w tablicy zdefiniowanej przez użytkownika. Wartością zwrotną jest liczba pobranych rekordów bądź wartość false w przypadku niepowodzenia operacji. oci_result - zwraca dane z pola w bieżącym wierszu, pobranym przez oci_fetch ().

Przetwarzanie zapytań SELECT Ogólne kroki zaangażowane w przetworzenie polecenia SELECT: Krok 1. (wymagany): przygotowanie polecenia SQL do wykonania poprzez użycie funkcji oci_parse(). Krok 2. (opcjonalny): jeżeli polecenie zawiera znaczniki zmiennych wiązanych dla wartości, które będą dostarczane przez aplikację podczas jej wykonywania, trzeba użyć funkcji oci_bind_by_name(), pozwalającej na utworzenie połączenia między zmienną skryptu PHP i znacznikiem zmiennej wiązanej w Oracle. Krok 3. (opcjonalny): można zdefiniować zmienne PHP, które służą do pobierania kolumn wymienionych w poleceniu SELECT. W tym celu należy wykorzystać funkcję oci_define_by_name(). Krok 4. (opcjonalny): użyć funkcji oci_set_prefetch() w celu ustalenia liczby rekordów, które zostaną pobrane z wyprzedzeniem, gdy wywołanie funkcji oci_execute() zakończy się powodzeniem. Domyślnie ta liczba wynosi 1.

Przetwarzanie zapytań SELECT Ogólne kroki zaangażowane w przetworzenie polecenia SELECT: Krok 5. (wymagany): wykonanie przygotowanego polecenia poprzez użycie funkcji oci_execute(). Krok 6. (opcjonalny, ale zalecany): sprawdzenie wartości zwrotnej wywołania funkcji oci_execute(). Jeżeli funkcja oci_execute() zwróciła wartość false, wskazuje ona na nieudaną próbę wykonania zapytania. W takim przypadku trzeba wykorzystać funkcję oci_error(), która pozwala na pobranie z Oracle opisu błędu oraz jego kodu. Krok 7. (wymagany): pobrać wyniki zapytania. W tym celu można wykorzystać jedną z funkcji pobierania oferowanych przez rozszerzenie OCI8: oci_fetch_all() pobiera wszystkie rekordy zbioru wynikowego i umieszcza je w tablicy zdefiniowanej przez użytkownika; oci_fetch() pobiera dane do buforu, skąd można odczytywać je za pomocą funkcji oci_result(). Jeżeli do pobierania kolumn SQL zostały zdefiniowane zmienne, dostęp do wyników jest możliwy także poprzez te zmienne.