Cuprins
Procedurile stocate sunt foarte utile pentru încapsularea operațiunilor bazei de date și economisirea timpului de dezvoltare.Când trebuie să mențineți o bază de date cu multe tranzacții și o anumită confidențialitate, puteți avea o echipă de dezvoltatori care realizează cod fără a ști cum este baza de date.
Pentru aceasta vom folosi proceduri stocate
Exemplu
Creăm o bază de date pentru un imobil și un tabel pentru imobiliare (folosim câteva câmpuri pentru a nu genera cod extins și confuz)
CREAȚI TABELUL DACĂ NU EXISTĂ „imobiliare” („id” int (11) NU NULL AUTO_INCREMENT, „furnituretype” varchar (100) DEFAULT '0', „price` decimal (10,2) DEFAULT '0.00',„ description ” text, CHEIE PRIMARĂ („id”)) MOTOR = MyISAM AUTO_INCREMENT = 195 DEFAULT CHARSET = latin1;
Creez o procedură stocată proprietate nouă pentru a insera proprietățile în baza de date. Când îl definesc, atribuie ca parametru datele pe care trebuie să le accepte, în acest caz proprietatea, prețul și descrierea, fiecare cu formatul său mysql, scriu și acțiunea INSERT
[color = # 000000] Pentru a face acest lucru, trebuie să fi creat anterior codul de conexiune la baza de date. [/ color]
[color = # 000000] Creăm un fișier config.php [/ color]
<? php
// Șir de conexiune la baza de date
$ link = mysql_connect ('localhost', 'user', 'password');
// conexiune la baza de date
if (! $ link) {
die ('Nu este conectat:'. mysql_error ());
}
// Selectați baza de date
$ db = 'dbInmobiliaria';
if (! mysql_select_db ($ db)) {
die ('Eroare:'. mysql_error ());
}?> var13 ->
CALL newinmueble (parametru1, parametru2, …)
Creăm o altă procedură stocată în baza de date pentru a interoga după tipul de proprietate.CREATE procedure furniturelist (tip varchar (150))
[liniuță = 1]SELECTAȚI * DIN proprietatea UNDE tipul de proprietate LIKEPe lângă utilizarea acestuia în php, putem face interogarea din orice software care acceptă sql și mysql în acest caz.
Am testat propertylist-ul procedurii stocate după tip în acest caz din software-ul de gestionare mysql Heidisql
CALL listă de mobilă („casă”)
Rezultatul poate fi văzut mai jos, deoarece a fost filtrat după tipul de proprietate.
[color = # 000000] CREATE procedura șterge proprietatea (proprietatea id INT) [/ color]
[culoare = # 000000]SELECTA * DIN IMOBILIARE UNDE id = id imobiliar[/Culoare]
Apoi apelăm procedura stocată după cum urmează
CALL ștergeți proprietatea (172)
Interesantul este că, dacă am fi administratori de baze de date ale unui sistem foarte complex, am putea pune la dispoziția programatorilor doar lista procedurilor și nu structura bazei de date, care oferă o confidențialitate mai mare.
Permițându-le să interacționeze cu datele, dar nu cu structura, chiar dacă pot citi doar, dar nu le pot modifica. Aceasta ar fi o problemă pentru sistemele de baze de date mari, cu multe persoane care interacționează acolo unde securitatea și confidențialitatea sunt importante.
Cele mai populare baze de date care acceptă procedurile stocate sunt mysql, firebird, server ms sql, oracle, db2 postgresql, sybase (primul care creează un limbaj de tranzacție pentru baza de date pentru sql numit Transact-SQL).V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv