Turinys
IF sąlygiškai saugomos procedūrosMes sukursime duomenų bazę ir lentelę su naudotojų komentarais, jie gali būti straipsniai, įrašai ar viskas, ko norime.
KURTI LENTELĘ „komentarai“ (
`commentid` int (11) Numatytasis NULL,
"data" data Numatytasis NULL,
`userid` int (50) Numatytasis NULL,
„komentaro“ tekstas,
PAGRINDINIS RAKTAS („įvykis“)
) VARIKLIS = MyISAM DEFAULT CHARSET = latin1;
Mes sukursime išsaugotą procedūrą, kuri suskaičiuos naudotojo paliktų komentarų skaičių ir grąžins to vartotojo lygį, kaip pavyzdį.
Ekspertas jei parašėte daugiau nei 5000 komentarų
Išplėstinė jei komentavote nuo 4999 iki 1000 kartų
Moderatorius jei komentavote nuo 999 iki 500 kartų
Redaktorius jei komentavote nuo 499 iki 100 kartų
Mes sukuriame išsaugotą procedūrą ir ji turės du parametrus, iš kurių vienas bus įvestas vartotojo, kurio kintamasis yra p_usuario, ID arba numeris, o kitas išvestis bus lygus kintamajam p_level.
Mes paaiškiname saugomą procedūrą, kurią vadiname, manome, kad userid = 112
CALL vartotojo lygis (112)
Ji pasirenka ir suskaičiuoja šio vartotojo komentarų skaičių ir išsaugo jį bendrame kintamajame, tada „if“ struktūra priskirs lygį kintamajam p_level ir grąžins vertę.
<? // Paruošiame užklausą iš php
$ result = $ mysqli-> query ("CALL userlevel (112)");
$ eilutė = $ rezultatas-> fetch_assoc ();
echo 'Lygis:'. $ row ['p_level']; ?> var13 ->
CASE sąlyginai saugomos procedūros
Operacija yra labai panaši į ankstesnę, tik tai, kad sąlyga yra CASE ir šiame pavyzdyje mes gauname siuntimo išlaidas arba papildomą mokestį pagal kliento vietą.
Mes manysime, kad cityid = 2 ir iškviesime išsaugotą procedūrą p
CALL siuntimo kaina (2)
<? // Paruošiame užklausą iš php
$ result = $ mysqli-> query ("CALL pristatymo kaina (2)");
$ eilutė = $ rezultatas-> fetch_assoc ();
echo 'Priemoka už siuntimą'. $ row ['p_recargo']; ?> var13 ->
Be sąlyginių struktūrų siūlomų galimybių, mes galime naudoti „if“ arba „case“ struktūras, kad atliktume kelis veiksmus su viena saugoma procedūra
Pavyzdžiui, sukursime saugomą procedūrą, skirtą produktams valdyti, kuriai išsiųsdami parametrą galime nustatyti, kokį veiksmą ar užduotį atliksime.
Matome, kad produktų procedūroje turime parametrą, pavadintą p_accion, todėl priskiriame, ar veiksmas bus išsaugoti naują produktą, ar jį pakeisti duomenų bazėje
Naujo produkto įdėjimo pavyzdys
<? // Paruošiame užklausą iš php
$ result = $ mysqli-> query ("CALL products (10, 'Mobile phone', '100,00', 'new')");
echo 'Produktas užregistruotas'; ?> var13 ->
Pavyzdys, kaip įterpti produkto redagavimą ar modifikavimą
<? // Paruošiame užklausą iš php
$ result = $ mysqli-> query ("CALL produktai (10, 'MXC3 mobilusis telefonas', '120,00', 'redaguoti')");
echo 'Produktas buvo modifikuotas'; ?> var13 ->
Šis metodas yra labai naudingas grupuojant užduotis, žinomas kaip CRUD, tai yra, kuriant, skaitant, redaguojant ir ištrinant duomenis bei atliekant atnaujinimus ir paieškas, visas užsakytas tame pačiame faile, taip palengvinant priežiūrą ir galimybę prireikus padidinti duomenų bazės mastelį..
Be to, funkcinės analizės požiūriu tai leidžia aiškiau suprasti programos verslo taisykles.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką