Turinys
Išsaugotos procedūros yra labai naudingos norint įterpti duomenų bazės operacijas ir sutaupyti kūrimo laiko.Kai jums reikia tvarkyti duomenų bazę, kurioje yra daug operacijų ir tam tikras konfidencialumas, galite turėti kūrėjų komandą, kuri sukuria kodą nežinodama, kokia yra duomenų bazė.
Tam naudosime saugomas procedūras
Pavyzdys
Mes kuriame nekilnojamojo turto duomenų bazę ir nekilnojamojo turto lentelę (mes naudojame keletą laukų, kad nesukurtume plataus ir painiavos kodo)
KURTI LENTELĘ, JEI NĖRA „nekilnojamojo turto“ („id“ int (11) NOT NULL AUTO_INCREMENT, „baldtype“ varchar (100) Numatytasis „0“, „kaina“ dešimtainis (10,2) Numatytasis „0.00“, „aprašymas“ tekstas, PAGRINDINIS RAKTAS („id“)) VARIKLIS = MyISAM AUTO_INCREMENT = 195 Numatytoji CHARSET = latin1;
Aš sukuriu saugomą procedūrą naujas turtas įterpti ypatybes į duomenų bazę. Apibrėždamas jį kaip parametrą priskiriu duomenis, kuriuos jis turi priimti, šiuo atveju savybę, kainą ir aprašymą, kiekvieną su savo „mysql“ formatu, taip pat rašau veiksmą INSERT
[color = # 000000] Norėdami tai padaryti, mes anksčiau turėjome sukurti duomenų bazės ryšio kodą. [/ color]
[color = # 000000] Sukuriame failą config.php [/ color]
<? php
// Duomenų bazės ryšio eilutė
$ link = mysql_connect ('localhost', 'user', 'password');
// duomenų bazės ryšys
jei (! $ nuoroda) {
mirti ('Neprisijungta:'. mysql_error ());
}
// Pasirinkite duomenų bazę
$ db = 'dbInmobiliaria';
if (! mysql_select_db ($ db)) {
mirti ('Klaida:'. mysql_error ());
}?> var13 ->
CALL newinmueble (parametras1, parametras2, …)
Mes sukuriame kitą duomenų bazėje saugomą procedūrą, pagal kurią galima atlikti užklausą pagal nuosavybės tipą.KURTI procedūrų baldų sąrašą (tipas varchar (150))
[įtrauka = 1]SELECT * FROM property WHERE property LIKE typeBe to, kad jį naudosime „php“, mes galime pateikti užklausą iš bet kurios programinės įrangos, kuri šiuo atveju palaiko „sql“ ir „mysql“.
Išbandėme saugomų procedūrų savininkų sąrašą pagal tipą šiuo atveju iš „mysql“ valdymo programinės įrangos „Heidisql“
CALL baldų sąrašas („namas“)
Rezultatas matomas žemiau, nes jis filtruojamas pagal nuosavybės tipą.
[color = # 000000] CREATE procedūra ištrinti nuosavybę (ID ypatybė INT) [/ color]
[spalva = # 000000]PASIRINKITE * IŠ NT, KUR id = nekilnojamojo turto ID[/Spalva]
Tada mes vadiname išsaugotą procedūrą taip
CALL ištrinti nuosavybę (172)
Įdomu tai, kad jei būtume labai sudėtingos sistemos duomenų bazės administratoriai, programuotojams galėtume pateikti tik procedūrų sąrašą, o ne duomenų bazės struktūrą, kuri užtikrina didesnį konfidencialumą.
Leisti jiems sąveikauti su duomenimis, bet ne su struktūra, net jei jie gali tik skaityti, bet ne keisti. Tai būtų problema didelėms duomenų bazių sistemoms, kuriose daug žmonių sąveikauja, kur svarbu saugumas ir konfidencialumas.
Populiariausios duomenų bazės, palaikančios saugomas procedūras, yra mysql, firebird, ms sql serveris, oracle, db2 postgresql, sybase (pirmiausia sukurkite SQL duomenų bazės operacijų kalbą, pavadintą „Transact-SQL“).Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką