Proceduri memorate în mysql și php

Crearea unei proceduri stocate în MySQL

Deoarece HP este stocat pe server, este recomandat să le creați direct pe server, adică Nu utilizați PHP sau alte limbi de programare pentru a executa comenzi SQL pentru a crea proceduri stocate.







Să ne uităm cum să creați HP pe un server MySQL, cum să creați un utilizator pentru el și cum să-i atribuiți privilegii pentru a lansa HP. Apoi verificăm corectitudinea rezultatului. Pentru a face acest lucru, voi folosi MySQL Workbench. Puteți utiliza alte programe (de exemplu, PHPMyAdmin). Puteți alege setul de instrumente care vă convine cel mai bine.

Să spunem că tabelul nostru arată astfel:

Pentru angajatul nostru care are nevoie de informații statistice privind salariile (medie, maximă, minimă etc.) din acest tabel, vom crea utilizatorul "tr" după cum urmează:

Acum, acordați acestui utilizator singurul privilegiu EXECUTE în schema în care se află tabela salariilor:

Putem fi siguri că am atribuit privilegiul necesar deschizând "Utilizatorii și privilegiile" din MySQL Bench:

Proceduri memorate în mysql și php

Acum vom crea CP după cum urmează:







Notă: toate operațiile efectuate necesită drepturi de administrator pe serverul MySQL.

După executarea acestei comenzi în MySQL Workbench, va fi creată gata de utilizare HP avg_sal. Ea returnează salariul mediu conform tabelului salariilor.

Pentru a verifica dacă utilizatorul tr poate rula efectiv HP și nu are acces la tabelul salariilor. Trebuie să ne reconectăm la serverul MySQL conectându-se ca tr. În MySQL Workbench, puteți face acest lucru creând o altă conexiune și specificând utilizatorul potrivit și parola acestuia.

După conectarea de sub tr. primul lucru pe care îl observăm este că utilizatorul nu vede deloc tabele, vede doar HP:

Proceduri memorate în mysql și php

Evident, utilizatorul tr nu poate accesa niciuna dintre tabele (și, prin urmare, nu poate vedea informațiile salariale detaliate din tabelul salariilor), dar poate lansa HP creat de noi, care va returna salariul mediu pentru companie:

Salariul mediu va fi afișat.

Deci, am finalizat toate lucrările pregătitoare: am creat utilizatorul, i-am atribuit privilegii, am creat HP și l-am testat. Acum, să vedem cum să numim acest HP din PHP.

Apelarea unei proceduri stocate din PHP

Atunci când folosiți DOP, apelarea CP este destul de simplă. Aici este codul PHP corespunzător:

Variabila $ res conține salariul mediu conform tabelului salariilor. Acum, utilizatorul poate efectua procesări suplimentare de ieșire folosind PHP.

În acest articol, am analizat componenta mult uitate a bazelor de date MySQL. proceduri stocate. Beneficiile utilizării HP sunt evidente, dar permiteți-mi să vă amintesc: Procedurile stocate ne permit să aplicăm un control mai strict al accesului la anumite date atunci când este necesar de logica de afaceri.

În plus, am demonstrat pașii de bază în crearea procedurilor stocate, utilizatorii și atribuirea privilegiilor corespunzătoare, au arătat cum sunt chemate HP din PHP.

Taylor Wren







Articole similare

Trimiteți-le prietenilor: