Paweł Rajba
pawel@i .uni.wroc.pl
http://pawel.i .uni.wroc.pl/
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: ""
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
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)
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.
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());
?>
array mysql_fetch_array(resource wynik
[, int typ_wyniku])
zapisuje wiersz wyniku w tablicy asocjacyjnej lub zwraca nul gdy nie ma więcej wierszy
typ_wyniku
MYSQL_ASSOC
MYSQL_NUM
MYSQL_BOTH (domyślne, zwraca tablicę
asocjacyjną i indeksowaną numerycznie)
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
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
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
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)
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";
...
?>
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
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
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
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
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));
}
...
?>
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 [, cal back 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(cal back 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)