Sunteți pe pagina 1din 29

PHP si MySQL

Lectia 18.
Programare WEB
Principaleletipuride date din MySQL
.BLOB-Date binare arbitrare, cu o lungime maxima de 65535 octeti

.CHAR(m)-Un sir de caractere de lungime fixa, cu un maxim de m caractere, unde m


este mai
mic decit 256. Pentru obtinerea lungimii dorite, se insereaza spatii finale
.DATE-O data in format an-luna-zi; de exemplu 2008-10-15
.DECIMALDECIMAL(m,d)-Un numar zecimal, reprezentat sub forma de sir cu "m" cifre
, din care
"d" se afla la dreapta punctului zecimal. Daca "m" si "d" sunt omise, in mod pre
stabilit se vor
utiliza valorile 10 si 0
.DOUBLE DOUBLE (m, d)-Un numar cu virgula mobila, cu dubla precizie, avind o lat
ime de
afisare egala cu "m" si un numar de "d" cifre dupa virgula.
.FLOAT(m,d)-Un numar cu virgula mobila, cu simpla precizie, avind o latime de af
isare egala cu
"m" si un numar de "d" cifre dupa virgula
.INTEGERINTEGER UNSIGNED-Un intreg pe 32 de biti. Daca se specifica atributul UN
SIGNED,
domeniul de valori este cuprins intre 0 si 4294967295; in caz contrar, domeniul
este cuprins intre
valorile -2147483648 si 2147483647
Principaleletipuride date din MySQL
.NUMERIC NUMERIC (m, d)-Similar cu DECIMAL
.REALREAL(m, d) -Similar cu DOUBLE
.SMALLINT SMALLINT UNSIGNED-Un intreg pe 16 biti. Daca se specifica atributul UN
SIGNED,
domeniul de valori este cuprins intre 0 si 65535; in caz contrar, domeniul este
cuprins intre
valorile 32768 si 32767
.TIME TIMESTAMP TIMESTAMP(m)-Ora in format ora-minut-secunda; de exemplu, 08-20-
00. O
valoare de tip data si ora, in format an-luna-zi ora-minut-secunda; de exemplu,
1976-01-05
00:00:00. Aceasta reprezentare este similara celei returnate de functiile UNIX.
Pt. stocare
valoarea este transformata din timpul curent in UTC si transformata invers la so
licitarea datei.
.VARCHAR(m)-Un sir caracter de lungime variabila, cu un maximum de "m" caractere
, unde m
este mai mic decit 256 pentru versiuni MySQL anterioare 5.0.3, iar pt. cele mai
noi limita este 65
535 bytes. Spatiile finale au fost eliminate
Comenzi SQL
.
CREATE DATABASE nume_db;
.
USE nume_db;
.
CREATE TABLE tabel (coloana tip,
coloana tip, );
Comenzi SQL
.
DROP TABLE tabel;

ALTER TABLE tabel DROP (ADD)coloana


Interogari SQL
.
SELECT * FROM tabel
.
WHERE cond
.
GROUP BY col
.
ORDER BY col ASC| DESC;
Operatori de comparatie non-algebrici
.x BETWEEN y AND z
.x LIKE y
.x NOT LIKE y
.x IN (y1, y2)
.x NOT IN (y1, y2)
.x IS NULL
.x IS NOT NULL
Modificarea datelor dintr-o baza de date
.INSERT INTO tabel (col2, col3) VALUES
(valoare1, valoare2);
.
UPDATE tabel SET coloana1=valoare1,
coloana2=valoare2
WHERE conditie;
.DELETE FROM tabel WHERE conditie
Functii
.count(*)
.count(coloana)
.count(distinct coloana)
.avg(coloana)
.min(coloana)
.max(coloana)
.sum(coloana)
Conectarea la serverul MySQL
.mysql_connect(gazda, utilizator, parola)
Incheierea conexiunii la serverul MySQL
.mysql_close();.
Selectarea unei baze de date
.
mysql_select_db(baza_de_date)
Crearea unei interogari
.mysql_query($sql, $conn)
Afisarea rezultatelor
.mysql_fetch_assoc(interogare)
Verificarea interogarilor care nu returneaza
rinduri de tabel
.Pentru a verifica daca o interogare
UPDATE, INSERT sau DELETE a avut
efectul dorit, puteti folosi functia

mysql_affected_rows(),
care returneaza numarul rindurilor afectate
de interogarea cea mai recenta.
Prelucrarea rezultatelor interogarilor
SELECT
.mysql_fetch_assoc()(saumysql_fetch_array()cu parametru
"MYSQL_ASSOC").
-sunt similare, adauga datele intr-o matrice asociativa unde
pentru fiecare element avem chei cu numele coloanelor iar
valoarile lor sunt datele din randul respectiv.
.mysql_fetch_row().
-adauga datele intr-o matrice asociativa unde pentru fiecare
element avem chei cu numere consecutive (incepand de la 0)
care reprezinta ordinea coloanelor iar valoarile lor sunt datele din
randul respectiv
.mysql_fetch_object().
-aduce rezultatele randului sub forma de obiect cu perechile
$rand->coloana
Protectii la adaugarea datelor
intr-o baza de date
.magic_quotes_gcp()-(poate fi setat ON din "php.ini") adauga
caracterul "\" inaintea ghilimelelor simple sau duble
.addslashes()-o functie PHP care adauga caracterul "\" inaintea
ghilimelelor simple sau duble
.mysql_real_escape_string()-adauga caracterul "\" inaintea
caracterelor speciale: NULL, \n, \r, \, ', ", \x00 si \x1a
.htmlentities()-transforma caractere HTML in entitati ale acestora
(de ex.: > devine >, ghilimelele duble " devin ")
Obtinerea numarului coloanelor dintr-un
tabel MySQL
.Pentru a obtine numarul coloanelor dintr-
un set de rezultate, utilizati functia

mysql_num_fields()
.Aceasta foloseste ca argument valoarea
returnata de functia mysql_query().
Obtinerea numelui unei coloane
.Pentru a obtine numele unei coloane dintr-un tabel MySQL, folositi
functia

mysql_field_name()
.Aceasta returneaza numele coloanei din setul de rezultate. Functia
preia doua argumente: valoarea returnata de functia mysql_query()
si indexul coloanei care va fi descrisa. Indexul asociat cu prima
coloana este 0, indexul asociat celei de-a doua coloane este l etc.
Obtinerea lungimii unei coloane
.Pentru a obtine lungimea unei coloane dintr-un tabel MySQL, folositi
functia

mysql_field_len()
.Aceasta returneaza lungimea maxima a coloanei din setul de
rezultate. Functia preia doua argumente: valoarea returnata de
functia mysql_query()si indexul coloanei care va fi descrisa.
Indexul asociat cu prima coloana este 0, indexul asociat celei de-a
doua coloane este l etc.
Obtinerea tipului MySQL al unei coloane
.Pentru a obtine tipul MySQL al unei coloane dintr-un tabel MySQL,
folositi functia

mysql_field_type()
.Aceasta preia doua argumente: valoarea returnata de functia
mysql_query()si indexul coloanei care va fi descrisa. Indexul
asociat cu prima coloana este 0, indexul asociat celei de-a doua
coloane este l etc.
Determinarea tabelului MySQL asociat
unei coloane
.Pentru a determina tabelul MySQL (daca exista) asociat unei
anumite coloane, folositi functia

mysql_field_table()
.Aceasta preia doua argumente: valoarea returnata de functia
mysql_query()si indexul coloanei care va fi descrisa. Indexul
asociat cu prima coloana este 0, indexul asociat celei de-a doua
coloane este l etc.
In cazul in care coloana contine o valoare calculata sau daca
respectiva coloana nu este asociata in alt mod cu un tabel MySQL,
functia returneaza un sir vid.
Obtinerea structurii complete a setului de
rezultate
.Daca doriti obtinerea mai multor caracteristici ale setului
de rezultate, o functie utila poate fi:

mysql_fetch_field()
.Aceasta functie returneaza un obiect ale carui proprietati
contin o varietate de informatii cu privire la coloana unui
tabel MySQL.
Obtinerea structurii complete a setului de
rezultate
.Proprietatile sunt urmatoarele:
.blob-are valoarea 1 in cazul in care coloana este de tip BLOB
.max_length-lungimea maxima a coloanei;
.multiple_key-are valoarea 1 in cazul in care coloana este o cheie non-unica
.name-numele coloanei
.not_null-are valoarea 1 in cazul in care coloana nu poate contine valoarea NULL
.numeric-are valoarea 1 in cazul in care coloana este numerica
.primary_key-are valoarea 1 in cazul in care coloana este o cheie primara
.table-numele tabelului MySQL caruia ii apartine coloana
.type-tipul MySQL al coloanei
.unique_key-are valoarea 1 in cazul in care coloana este o cheie unica
.unsigned-are valoarea 1 in cazul in care coloana este de tip UNSIGNED
.zerofill-are valoarea 1 in cazul in care coloana este completata cu zerouri
.functia mysql_fetch_field()preia doua argumente: valoarea returnata de functia
mysql_query()si indexul coloanei care va fi descrisa. Indexul asociat primei col
oane
este 0, indexul asociat celei de-a doua coloane este l etc.
Accesul non-secvential la coloanele unui
set de rezultate
.mysql_data_seek(rezultat, numar_rand)
Determinarea bazelor de date
gazduite de un server MySQL
.mysql_list_dbs()
Determinarea tabelelor incluse
intr-o baza de date MySQL
.mysql_list_tables()
Determinarea coloanelor incluse intr-un
tabel
.mysql_list_fields()

S-ar putea să vă placă și