CURS DE PHP (PHP Hypertext Preprocessor)
Limbajul PHP ofera posibilitatea utilizarii bazelor de date MySQL sau MS Access si prin intermadiul interfetei ODBC (Open Data Base Connectivity). În acest scop, PHP dispune de functii dedicate, numite functii ODBC.
O sursa de date DSN (Data Source Name) reprezinta un punct de legatura între serverul de baze de date (e.g., MySQL sau MS Access) si aplicatia (e.g., un script PHP) care urmeaza sa interogheze o baza de date. Sursa de date DSN contine informatii esentiale despre baza de 24424b119y date respectiva cu ajutorul carora se realizeaza accesul la continutul ei.
Definirea unei surse de date DSN pe platforma Windows (crearea unei conexiuni ODBC)
Crearea unei conexiuni ODBC cu o baza de date MS Access:
|
|
Aceasta configuratie trebuie facuta pe calculatorul pe care website-ul este localizat. Daca se utilizeaza Internet Information Server (IIS) pe calculatorul pe care se lucreaza, atunci aceste instructiuni vor fi valvbile dar daca website-ul este localizat pe un server la distanta, atunci este necesar un acces fizic direct la acel server.
Crearea unei conexiuni ODBC cu o baza de date MySQL:
Este necesara, în prealabil, descarcarea de pe situl oficial MySQL (www.mysql.com) a driverului ODBC pentru MySQL, MySQL Connector/ODBC (numit, în versiunile anterioare, MyODBC), pentru platforme Windows.
Versiunea 3.51 a acestui driver este de preferat a fi instalata pe calculatorul de lucru.
Pentru a crea o sursa de date DSN este necesara, crearea unei baze de date MySQL, în prealabil Baza de date se va numi calculatoare. Ea va contine un singur tabel, numit oferta_calc(Model, Microprocesor, Pret). Realizarea acestei baze de date presupune mai întâi conectarea la serverul MySQL în contul root si executarea comenzilor urmatoare în interfata CGI sau mai comod cu ajutorul lui MySQL Query Browser
mysql>create database calculatoare;
mysql>use calculatoare
mysql>create table oferta_calc(
->model VARCHAR(30) NOT NULL,
->microprocesor VARCHAR(20) NOT NULL,
->pret int(6) NOT NULL);
|
Dupa crearea bazei de date se executa urmatoarea secventa de comenzi:
Se deschide Administrative Tools. (Start-> Settings -> Control Panel ->Administrative Tools)
Se face double-click pe Data Sources (ODBC) din interior.
Se selecteaza fisa System DSN .
Se actioneaza butonul grafic Add din System DSN .
Se selecteaza driverul MySQL ODBC 3.51 Driver. Apoi click pe Finish.
În fereastra afisata (MySQL ODBC 3.51 Driver - DSN Configuration) trebuie introdus un nume pentru sursa de date care se creaza (Data Source Name). Acest nume va fi folosit în scripturile PHP. Optional, se poate introduce o descriere a sursei de date (Description).
În aceeasi fereastra trebuie introdusi parametrii conexiunii (MySQL Connection Parameters).
numele sau adresa IP (Host/Server Name (or IP)) a gazdei serverului MySQL (introduceti localhost sau 127.0.0.1)
numele bazei de date (Database Name) care va fi utilizata
numele utilizatorului (User; introduceti root)
parola utilizatorului (Password); introduceti parola utilizatorului root)
portul TCP (Port) utilizat pentru stabilirea conexiunii (în situatia în care nu este utilizat portul implicit, 3306).
În final se face click pe OK.
Functiile utilizate la interactiunea cu bazele de date ODBC
Connectarea la o baza de date ODBC
resource odbc_connect (string sursa, string utilizator, string parola
În caz de succes, functia întoarce un identificator de conexiune ODBC (care va fi folosit de celelalte functii ODBC) si 0 în caz de eroare; sursa este numele DSN care va fi utilizata, iar utilizator si parola reprezinta numele utilizatorului si parola definite la crearea conexiunii cu serverul de baze de date.
resource odbc_pconnect (string sursa, string utilizator, string parola
Functia este similara cu odbc_connect (), cu exceptia faptului ca, dupa executia scriptului PHP, conexiunea nu este închisa (persistent connection). Din acest motiv, ea poate fi utilizata si de alte scripturi care contin cereri pentru conexiuni cu aceiasi parametri sursa, utilizator si parola.
Executarea interogarilor asupra unei baze de date ODBC
resource odbc_exec(resource con_id, string interogare
Functia pregateste si executa interogarea SQL interogare (prezentata ca un sir alfanumeric la apel) prin utilizarea conexiunii ODBC precizata prin identificatorul con_id; ea întoarce un identificator de rezultat ODBC în caz de succes, si valoarea logica FALSE în caz de eroare.
resource odbc_do(resource con_id, string interogare
Functia odbc_do() este sinonima cu odbc_exec() si poate fi utilizata în locul acesteia.
Exemplu:
$conexiune=odbc_connect('northwind','',''); $sir_sql="SELECT * FROM customers"; $rs=odbc_exec($conexiune,$sir_sql); |
Extragera inregistrarilor dintr-o baza de date ODBC
bool odbc_fetch_row(resource rez_id int numar_rand
Functia extrage un rând din rezultatul întors de functiile odbc_exec() sau odbc_do(); întoarce valoarea logica TRUE daca operatia de extragere a avut succes si valoarea logica FALSE în caz contrar (atunci când nu mai sunt rânduri de extras). Rândul extras poate fi utilizat prin intermediul functiei odbc_result(). Functia odbc_fetch_row() primeste ca parametru identificatorul de rezultat ODBC întors de functia odbc_exec(). De asemenea, poate primi ca parametru optional numar_rand adica numarul rândului care se doreste a fi extras.
string odbc_result(resource rez_id, mixed câmp
Functia întoarce continutul unui câmp care apartine unui rând extras anterior cu functia odbc_fetch_row(). Ea primeste ca parametru identificatorul rezultatului întors de functia odbc_exec().
Exemplu:
odbc_fetch_row($rs) $compname=odbc_result($rs,1); # intoarce valoarea primului camp din înregistrare |
$compname=odbc_result($rs,"DenumireProdus"); # intoarce valoarea campului "DenumireProdus" |
Închiderea conexiunii cu baza de date ODBC
void odbc_close(resource con_id
Functia închide conexiunea ODBC precizata prin identificatorul con_id.
Aplicatia exemplu1 : Utilizarea interfetei ODBC : afisarea datelor dintr-o tabela MySQL
Scriptul urmator afiseaza continutul integral al tabelei oferta_calc.frm a bazei de date ODBC-MySQL - calculatoare - descrisa de descriptorul sursa de date oferta_calc_dsn.
|
Aplicatia exemplu 2 : Utilizarea interfetei ODBC : inserarea datelor într-o tabela MySQL
Scripturile urmatoare insereaza câte o înregistrare în tabela oferta_calc.frm a bazei de date ODBC-MySQL -calculatoare- descrisa de descriptorul sursa de date oferta_calc_dsn.
|
|
Aplicatia exemplu3 : Utilizarea interfetei ODBC : afisarea datelor dintr-o tabela MS-Access
Scriptul urmator afiseaza continutul integral al tabelei PRODUSE a bazei de date ODBC- MS-Access - magazin.mdb - descrisa de descriptorul sursa de date magazin_dsn.
|
Aplicatia exemplu 4 : Utilizarea interfetei ODBC : inserarea datelor într-o tabela MS-Access
Scripturile urmatoare insereaza câte o înregistrare în tabela PRODUSE a bazei de date ODBC-MS-Access-magazin.mdb- descrisa de descriptorul sursa de date magazin_dsn.
|
|
Exemplul 5: Afisarea clientilor din baza de date a companiei "Northwind"
<html> <body> <?php $conn=odbc_connect('northwind','',''); if (!$conn) $sql="SELECT * FROM customers"; $rs=odbc_exec($conn,$sql); if (!$rs) echo "<table><tr>"; echo "<th>Companyname</th>"; echo "<th>Contactname</th></tr>"; while (odbc_fetch_row($rs)) odbc_close($conn); echo "</table>"; ?> </body> </html> |
|