Documente Academic
Documente Profesional
Documente Cultură
Programare Web
Accesul la bazele de date
prin PHP
Dr. Sabin-Corneliu Buraga
Facultatea de Informatica
Universitatea “A.I.Cuza” – Iasi, Romania
http://www.infoiasi.ro/~busaco/
cuprins
baze de date
• Organizarea si regasirea facila a informatiilor,
conduc la stocarea acestora in baze de date
(relationale)
– Fiecare baza de date contine mai multe tabele
– O tabela este structurata în coloane (cimpuri) si
rânduri (înregistrari)
– Fiecare cimp se desemnat de un nume si un tip de date
(numeric, sir de caractere, data,...)
– Pentru facilitarea cautarii/sortarii pot fi asociati si
indecsi, conform valorilor unui/unor cimp(uri)
– Intre tabelele unei baze de date se pot defini diverse
relatii
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 3
Tehnologii Web 2007
baze de date
• Ansamblul de aplicatii care realizeaza
managementul bazelor de date se numeste
sistem de baze de date relational
(Relational DataBase Management System
–RDBMS)
– DB2
– Informix
– Microsoft SQL Server
– MySQL
– Oracle
– PostgreSQL
–…
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 4
Tehnologii Web 2007
baze de date
MySQL
• Arhitectura open source
• Foarte rapid, optimizat pentru acces la date
• www.mysql.com
• Larg folosit in cadrul solutiilor de comert electronic
(e.g., aplicatii Web de tip e-shop)
• API-uri disponibile in majoritatea limbajelor
de programare (C, C++, Perl, PHP, Python,…)
• Componente: server (mysqld) + client (mysql,
PHPMyAdmin, script CGI, program PHP,…)
• Manualul: http://dev.mysql.com/doc/mysql/en
MySQL
• Alte facilitati:
– Crearea “din zbor” de variabile
ce pot fi ulterior refolosite in interogari
– Replicarea datelor
– Paleta larga de functii, operatori si
structuri de control
– Suport pentru triggers si clusters
– Multe altele
MySQL
MySQL | exemplu
(infoiasi)$ mysql –u tux –p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.0.11a-gamma
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use clienti;
Reading table information for completion of table and column names
Database changed
MySQL | exemplu
mysql> select nume, prenume from comenzi;
+---------+---------+
| nume | prenume |
+---------+---------+
| Savon | Buritin |
| Vigoniu | Bonzui |
| Nilla | Sapo |
| Lzian | Xi |
| Tin | Debre |
+---------+---------+
5 rows in set (0.01 sec)
MySQL | exemplu
mysql> select nume from comenzi
where id > 3;
+-------+
| nume |
+-------+
| Lzian |
| Tin |
+-------+
2 rows in set (0.11 sec)
MySQL
MySQL | exemplu
mysql> create database studenti;
Query OK, 1 row affected (0.00 sec)
mysql> use studenti
Database changed
mysql> create table note (
-> nume char (40),
-> adresa char(40),
-> grupa integer,
-> nota integer not null);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into note values
-> ("Radu Filip", "socrate@infoiasi.ro",
2, 10);
Query OK, 1 row affected (0.00 sec)
MySQL | exemplu
MySQL
php | bd
php | bd
php | bd
php | bd | exemplu
php | bd | exemplu
php
Cream tabela
php
Generam structura
php
Confirmarea crearii
php
Eventual, inseram o inregistrare
php | bd | exemplu
// conectarea la serverul MySQL
$conexiune = mysql_connect ('localhost', 'tux', 'p@rola');
// deschidem baza de date
mysql_select_db ('students', $conexiune)
// formulam o interogare & o executam
$sql = "select name, year from students where year = 2";
$interog = mysql_query ($sql, $conexiune);
// salvam într-un tablou înregistrarile gasite
$inreg = mysql_fetch_array ($interog);
while ($inreg) {
echo ('<p>Studentul ' . $inreg['name'] .
' este in anul ' . $inreg['year'] . '</p>');
$inreg = mysql_fetch_array ($interog);
}
mysql_close ($conexiune);
Afisam numele studentilor din anul 2
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 26
Tehnologii Web 2007
php | bd
• SQLite
– Extensie PHP pentru acces la biblioteca SQLite
– Baza de date este stocata ca fisier obisnuit,
fara a fi necesara conectarea la un server de baze
de date extern
– Se ofera suport pentru interogari SQL
– Detalii la http://sqlite.org/
– Exista posibilitatea administrarii via
PHPSQLiteAdmin: http://phpsqliteadmin.sourceforge.net
php | bd | exemplu
rezumat
Intrebari…?