background image

Kurs WWW

Paweł Rajba

Paweł Rajba

pawel@ii.uni.wroc.pl

http://pawel.ii.uni.wroc.pl/

background image

PHP – obsługa MySQL

resource 

mysql_connect

(

[string serwer
[,string użytkownik
[,string hasło]]])

łączy z bazą danych 

domyślnie

serwer: "localhost:3306"

użytkownik: user będący właścicielem procesu 

MySQL

hasło: ""

background image

PHP – obsługa MySQL

int 

mysql_create_db

(string nazwa_bazy

[, resource identyfikator_połączenia])

tworzy bazę danych

bool 

mysql_select_db

(string nazwa_bazy

[, resource identyfikator_połączenia])

wybiera bazę danych 

background image

PHP – obsługa MySQL

resource 

mysql_query

(string zapytanie

[, resource identyfikator_połączenia
[, int typ_wyniku]])

wykonuje zapytanie zwracając zasoby

zapytania nie powinno się kończyć średnikiem

typ_wyniku może przyjmować następujące 

wartości:

MYSQL_USE_RESULT

MYSQL_STORE_RESULT (domyślne, wynik jest 

buforowany)

background image

PHP – obsługa MySQL

resource 

mysql_unbuffered_query

(string zapytanie

[, resource identyfikator_połączenia
[, int typ_wyniku]])

wysyła zapytanie nie pobierając i buforując wyniku

ma znaczenie przy zapytaniu generującemu duże 

wyniki; znacznie oszczędza pamięć

nie trzeba czekać na zakończenie zapytania; można 

od razu pracować na pierwszej krotce

nie można użyć funkcji mysql_num_rows()

przed wysłaniem kolejnego zapytania należy pobrać 

wszystkie wiersze.

background image

PHP – obsługa MySQL

int 

mysql_insert_id

([resource id_połączenia])

podaje numer ID wygenerowany przez auto_increment 

podczas ostatniej operacji INSERT

<?php
mysql_connect('localhost', 'user', 'pass') or
  die('Nie można się połączyć');
mysql_select_db('test');
mysql_query("INSERT INTO osoba(imie,nazwisko,...)
  values ('Paweł','Rajba',...)");
printf("Ostatnio dodany rekord ma id %d\n",
  mysql_insert_id());
?>

background image

PHP – obsługa MySQL

array 

mysql_fetch_array

(resource wynik

[, int typ_wyniku])

zapisuje wiersz wyniku w tablicy asocjacyjnej 
lub zwraca null gdy nie ma więcej wierszy

typ_wyniku

MYSQL_ASSOC

MYSQL_NUM

MYSQL_BOTH (domyślne, zwraca tablicę 

asocjacyjną i indeksowaną numerycznie)

background image

PHP – obsługa MySQL

array 

mysql_fetch_assoc

(resource wynik)

równoważne
mysql_fetch_array( _ , MYSQL_ASSOC)

array 

mysql_fetch_row

(resource wynik)

równoważne
mysql_fetch_array( _, MYSQL_NUM)

bool 

mysql_free_result

(resource wynik)

zwraca całą pamięć przydzieloną wynikowi

background image

PHP – obsługa MySQL

string 

mysql_error

([resource id_połączenia])

zwraca tekst komunikatu z ostatnio wykonanej 

operacji

int 

mysql_errno

([resource id_połączenia])

zwraca numer komunikatu błędu z ostatnio 
wykonanej operacji

bool 

mysql_close

([resource id_połączenia])

zamyka połączenie z serwerem

background image

PHP – obsługa MySQL

int 

mysql_num_rows

(resource wynik)

zwraca liczbę wierszy w wyniku

stosuje się do polecenie SELECT

int 

mysql_affected_rows

([resource conn_id])

zwraca liczbę przetworzonych wierszy

stosuje się do poleceń UPDATE, INSERT, 

DELETE

jeżeli DELETE zostanie wywołany bez klauzuli 

WHERE, to wtedy funkcja zwróci wartość 0

background image

PHP – obsługa MySQL

bool 

mysql_data_seek

(

resource identyfikator_wyniku,
int numer_wiersza)

przesuwa wewnętrzny wskaźnik do pozycji 
numer_wiersza 

array 

mysql_fetch_lengths

(resource wynik)

pobiera długość każdego pola pobranego za 

pomocą funkcji mysql_fetch_row (muszą być 
numerki)

background image

PHP – obsługa MySQL

mysql_fetch_lengths

 – przykład:

<?php
  ...
  $row = mysql_fetch_array($result,MYSQL_BOTH);
  $len = mysql_fetch_lengths($result);
  print $row["id"]." ";
  print $row["name"]." ";
  print $row["salary"]."<br>\n";
  print $len[0]." ".$len[1]." ".$len[2]."<br>\n";
  ...
?> 

background image

PHP – obsługa MySQL

string 

mysql_field_table

(

resource wynik, int ofset_pola)

pobiera nazwę tabeli w której znajduje się 
dane pole

może mieć znaczenie przy złączeniach

int 

mysql_num_fields

(resource wynik)

zwraca liczbę pól w wyniku

string 

mysql_field_name

(

resource wynik, int indeks_pola)

podaje nazwę danego pola w wyniku 

background image

PHP – obsługa MySQL

string 

mysql_field_type

(

resource wynik, int ofset_pola)

pobiera typ podanego pola (int, real, string, ...)

int 

mysql_field_len

(

resource wynik, int ofset_pola)

zwraca długość podanego pola

resource 

mysql_list_fields

(string baza, string 

tabela [, resource identyfikator_połączenia])

zwraca informację o polach

background image

PHP – obsługa MySQL

mysql_list_fields

 – przykład

<?php
...
$fields = mysql_list_fields('test','emp', $link);
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++) {
  echo mysql_field_name($fields, $i).":";
  echo mysql_field_type($fields, $i).":";
  echo mysql_field_len($fields, $i)."<br>\n";
}
...
?>
//id:int:11
//name:string:20
//salary:int:11

background image

PHP – obsługa MySQL

resource 

mysql_list_tables

(string baza

[, resource identyfikator_połączenia])

pobiera nazwy tabel z baza

string 

mysql_tablename

(resource wynik, int i)

pobiera nazwę i-tej tabeli z wyniku funkcji 
mysql_list_tables 

background image

PHP – obsługa MySQL

Przykład:

<?php
...
$result = mysql_list_tables('test');
while ($row = mysql_fetch_row($result)) {
  printf ("Tabela: %s\n",$row[0]);
}
for ($i=0; $i<mysql_num_rows($result); $i++) {
  printf ("Tabela:%s\n",
    mysql_tablename($result,$i));
}
...
?>

background image

PHP – obsługa MySQL

Przykład: 

tabela.php, bazooka.php

background image

PHP – wysyłanie plików z formularza

Kilka różnic między zwykłym formularzem, a 

takim do wysłania pliku:

należy obowiązkowo umieścić w znaczniku 

form

 atrybut 

enctype="multipart/form-data"

powinien się również pojawić element 

input

 z 

type="file"

możemy też umieścić element taki jak

<input type="hidden" 
name="MAX_FILE_SIZE" value="30000">

określi on maksymalny akceptowany rozmiar 
pliku; musi być przed 

input...file

background image

PHP – wysyłanie plików z formularza

Dyrektywy w pliku 

php.ini

file_uploads = On | Off

włącza/wyłącza możliwość uploadowania 
plików

upload_tmp_dir = ścieżka

określa tymczasowy katalog w którym będą 

składowane pobrane pliki; domyślnie nie jest 
to ustawione – rolę takiego katalogu pełni 

tymczasowy katalog w systemie (np. 
C:\Windows\Temp)

background image

PHP – wysyłanie plików z formularza

Dyrektywy... c.d.

upload_max_filesize = rozmiar

maksymalny akceptowany rozmiar 
uploadowanego pliku (domyślnie 2MB)

post_max_size = rozmiar

maksymalny akceptowany rozmiar 

przesyłanego formularza (domyślnie 8M)

background image

PHP – wysyłanie plików z formularza

Po wysłaniu, dostępne są następujące zmienne:

$_FILES["plik"]["name"]

– oryginalna nazwa pliku po stronie klienta

$_FILES["thefile"]["type"]

– typ zawartości wysłanego pliku

$_FILES["thefile"]["size"]

– rozmiar wysłanego pliku

$_FILES["thefile"]["tmp_name"]

– nazwa pliku przesłanego na serwer

$_FILES["thefile"]["error"]

 – kod błędu

background image

PHP – wysyłanie plików z formularza

Kody błędów, które mogą się pojawić przy 

wysyłaniu plików z formularza:

UPLOAD_ERR_OK

 (kod 0)

– operacja zakończyła się sukcesem

UPLOAD_ERR_INI_SIZE

 (kod 1)

– plik przekracza rozmiar określony dyrektywą 

upload_max_filesize

 w pliku 

php.ini

background image

PHP – wysyłanie plików z formularza

Kody błędów... c.d.

UPLOAD_ERR_FORM_SIZE

 (kod 2)

– plik przekracza rozmiar określony dyrektywą 
 z formularza 

MAX_FILE_SIZE

UPLOAD_ERR_PARTIAL

 (kod 3)

– plik pobrany częściowo

UPLOAD_ERR_NO_FILE

 (kod 4)

– nie pobrano żadnego pliku

background image

PHP – wysyłanie plików z formularza

Funkcje przydatne przy wysyłaniu plików z 

formularza

bool is_uploaded_file(string nazwa_pliku)

– upewnia nas, że plik faktycznie został 
przysłany metodą POST, a skrypt nie będzie 

pracował na plikach których nie powinien

bool move_uploaded_file(string plik, 

string destination)

– po sprawdzeniu, że plik został przysłany 

metodą POST jest on przenoszony do nowej 
lokalizacji

background image

PHP – wysyłanie plików z formularza

Wysyłanie wielu plików

Przykład: 

pliki.php

background image

PHP – funkcje do obsługi tablic

array array_count_values(array wejście)

zwraca tablicę z elementami i ich częstością 

występowania w tablicy wejście (p)

array array_diff(array t1, array t2 [, array ...])

zwraca tablicę, której elementami są te 
elementy t1, które nie występują w 

pozostałych argumentach (p)

array array_fill(int start, int ile, mixed wartość)

wypełnia tablicę podanymi wartościami (p)

background image

PHP – funkcje do obsługi tablic

array array_filter(array wejście [, callback 

funkcja_zwrotna])

zwraca tablicę elementów z wejście, dla 

których funkcja_zwrotna zwróci TRUE (p)

array array_flip(array trans)

dla każdego elementu tablicy wymienia klucz z 

odpowiadającą mu wartością (p)

array array_intersect(array t1, array t2 [, array 

...])

zwraca elementy z t1, które występuję we 

wszystkich pozostałych argumentach (p)

background image

PHP – funkcje do obsługi tablic

bool array_key_exists (mixed szukany,

   array tablica)

sprawdza, czy szukany klucz jest w tablicy (p)

array array_map(callback funkcja_zwrotna,

    array t1 [, array t2...])

wykonuje funkcje zwrotną na każdym 
elemencie t1; liczba argumentów funkcji 

zwrotnej powinna być równa ilości tablic (p)

background image

PHP – funkcje do obsługi tablic

array array_merge(array t1, array t2 [, array 

...])

łączy kilka tablic w jedną (p)

mixed array_pop(array tablica)

usuwa i zwraca ostatni element tablicy

int array_push ( array tablica, mixed wartosc 

[, mixed ...])

wstawia jeden więcej elementów na koniec 

tablicy

background image

PHP – funkcje do obsługi tablic

mixed array_rand(array wejście [, int ilość])

wybiera jeden lub więcej losowo wybranych 

elementów z tablicy (p)

void shuffle(array tablica)

tasuje elementy tablicy (p)

array array_reverse(array wejście

        [, bool zachowaj_klucze])

odwraca kolejność elementów w tablicy (p)

background image

PHP – funkcje do obsługi tablic

mixed array_search(mixed igła, array

        stóg_siana [, bool ścisły])

szuka wartości w tablicy

zwraca klucz znalezionego elementu lub 

NULL

ścisły określa, czy mają być też porównywane 

typy elementów

background image

PHP – funkcje do obsługi tablic

mixed array_shift(array tablica)

usuwa i zwraca pierwszy element tablicy

array array_slice(array tablica, int

    przesunięcie [, int długość])

zwraca kawałek tablicy od przesunięcie, a 

długość to ilość zwróconych elementów

jeśli przesunięcie jest ujemne, to sekwencja 

zacznie się o tyle elementów od końca

jeśli długość jest ujemna, to sekwencja 

skończy się o tyle elementów od końca (p)

background image

PHP – funkcje do obsługi tablic

mixed array_sum(array tablica)

oblicza sumę wartości elementów w tablicy

array array_unique(array tablica)

usuwa duplikaty wartości z tablicy

int array_unshift ( array tablica, mixed 

wartość [, mixed ...])

wstaw jeden lub więcej elementów na 

początek tablicy

int count(mixed zmienna)

zlicza ilość elementów w tablicy

background image

PHP – funkcje do obsługi tablic

mixed current(array tablica)

zwraca wartość bieżącego elementu

mixed next(array tablica)

przesuwa wskaźnik o jeden do przodu

zwraca element po przesunięciu lub FALSE, 

jeśli nie ma więcej elementów

mixed prev(array tablica)

przesuwa wskaźnik o jeden do tyłu

zwraca element po przesunięciu lub FALSE, 

jeśli nie ma więcej elementów

background image

PHP – funkcje do obsługi tablic

mixed reset(array tablica)

ustawia wskaźnik w tablicy na pierwszy 

element

zwraca ten pierwszy element

mixed end(array tablica)

ustawia wskaźnik w tablicy na ostatni element

zwraca ten ostatni element

mixed key(array tablica)

zwraca klucz bieżącego elementu tablicy 

asocjacyjnej

background image

PHP – funkcje do obsługi tablic

int sizeof(mixed zmienna)

alias do funkcji count()

mixed pos(array tablica)

alias do funkcji current()

array range(mixed dolny, mixed górny)

tworzy tablicę elementów od dolny do górny 

włącznie

jeśli górny<dolny, to sekwencja będzie do 

górnego do dolnego (p)

background image

PHP – funkcje do obsługi tablic

array each(array tablica)

pobiera parę (klucz, wartość) bieżącego 

elementu w tablicy

void list(mixed ...)

argumentom przypisuje kolejne elementy z 
przypisywanej tablicy (p)

background image

PHP – funkcje do obsługi tablic

void sort(array tablica [, int flagi])

sortuje tablice

flagę można ustawić na

SORT_REGULAR - porównuj elementy 

normalnie

SORT_NUMERIC - porównuj elementy jako 

liczby

SORT_STRING - porównuj elementy jako stringi 

(p)

background image

PHP – funkcje do obsługi tablic

void usort(array tablica, callback funkcja_por)

sortuje tablicę porównując elementy funkcją 

zdefiniowaną przez użytkownika (p)

void rsort(array tablica [, int flagi])

sortuje w porządku odwrotnych

int ksort (array tablica [, int flagi])

sortuje tablicę względem kluczy

zachowuje skojarzenia kluczy z danymi (p)