Saugokite procedūras su PHP parametrais

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

Tada sukuriame html duomenų registravimo formą, kad įvestume naujų ypatybių reikšmes.

[color = # 000000] Čia mes siunčiame informaciją į failą save.php, kuris iškvies išsaugotą procedūrą ir tai išsaugos duomenis. [/ color]
[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 ->

Paveikslėlyje matome, kaip saugoma procedūra vadinama per SQL sakinį SKAMBINTI

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 type
Be 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ą.

Taip pat galime sukurti išsaugotą duomenų ištrynimo procedūrą, kur ID atsiųsime kaip parametrą
[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ą
wave wave wave wave wave