Kurs WWW
Paweł Rajba
Paweł Rajba
pawel@ii.uni.wroc.pl
http://pawel.ii.uni.wroc.pl/
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: ""
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
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)
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.
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());
?>
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)
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
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
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
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)
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";
...
?>
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
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
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
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
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));
}
...
?>
PHP – obsługa MySQL
Przykład:
tabela.php, bazooka.php
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
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)
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)
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
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
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
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
PHP – wysyłanie plików z formularza
Wysyłanie wielu plików
Przykład:
pliki.php
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)
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)
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)
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
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)
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
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)
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
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
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
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)
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)
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)
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)