Lagre prosedyrer med parametere fra PHP

Innholdsfortegnelse
Lagrede prosedyrer er svært nyttige for å innkapsle databaseoperasjoner og spare utviklingstid.
Når du trenger å vedlikeholde en database med mange transaksjoner og litt konfidensialitet, kan du ha et team av utviklere som lager kode uten å vite hvordan databasen er.
For dette vil vi bruke lagrede prosedyrer
Eksempel
Vi lager en database for en eiendom og et bord for eiendom (vi bruker få felt for ikke å generere omfattende og forvirrende kode)
 LAG TABELL HVIS IKKE FESTER `fast eiendom` (` id` int (11) NOT NULL AUTO_INCREMENT, `furnituretype` varchar (100) DEFAULT '0',` price` decimal (10,2) DEFAULT '0.00', `description ' tekst, PRIMÆR NØKKEL (`id`)) MOTOR = MyISAM AUTO_INCREMENT = 195 DEFAULT CHARSET = latin1; 

Jeg lager en lagret prosedyre ny eiendom for å sette inn egenskapene i databasen. Når jeg definerer det, tilordner jeg som parameter dataene det må godta, i dette tilfellet eiendom, pris og beskrivelse, hver med sitt mysql -format, skriver jeg også INSERT -handlingen

Deretter lager vi et html -dataregistreringsskjema for å angi verdiene til de nye egenskapene.

[color = # 000000] Her sender vi informasjonen til en fil save.php som vil ringe den lagrede prosedyren, og dette vil lagre dataene. [/ color]
[color = # 000000] For å gjøre dette må vi tidligere ha opprettet databasetilkoblingskoden. [/ color]
[color = # 000000] Vi oppretter en fil config.php [/ color]

<? php

// Databasetilkoblingsstreng

$ link = mysql_connect ('localhost', 'user', 'password');

// databasetilkobling

if (! $ link) {

die ('Ikke tilkoblet:'. mysql_error ());

}

// Velg database

$ db = 'dbInmobiliaria';

hvis (! mysql_select_db ($ db)) {

die ('Feil:'. mysql_error ());

}?> var13 ->

På bildet kan vi se hvordan den lagrede prosedyren kalles gjennom SQL -setningen ANROP

CALL newinmueble (parameter1, parameter2, …)

Vi oppretter en annen lagret prosedyre i databasen for å spørre etter eiendomstype.

CREATE procedure furniturelist (type varchar (150))

[innrykk = 1]VELG * FRA eiendom HVOR eiendom LIKE type
I tillegg til å bruke det i php, kan vi lage spørringen fra hvilken som helst programvare som støtter sql og mysql i dette tilfellet.
Vi testet den lagrede prosedyre -eiendomslisten etter type i dette tilfellet fra mysql -administrasjonsprogramvaren Heidisql
RING liste over møbler ('hus')
Resultatet kan sees nedenfor som det har filtrert etter eiendomstype.

Vi kan også opprette en lagret prosedyre for å slette data der vi sender ID -en som en parameter
[color = # 000000] OPPRET prosedyre for sletting av eiendom (ID -egenskap INT) [/ color]
[color = # 000000]VELG * FRA fast eiendom WHERE id = eiendoms -ID[/Farge]
Deretter kaller vi den lagrede prosedyren som følger
RING slette eiendom (172)
Det interessante med dette er at hvis vi var databaseadministratorer for et veldig komplekst system, kunne vi bare gjøre programmeringslisten tilgjengelig for databaserne, og ikke strukturen til databasen, noe som gir større konfidensialitet.
Tillater dem å samhandle med dataene, men ikke med strukturen, selv om de bare kan lese, men ikke endre. Dette vil være et problem for store databasesystemer med mange mennesker som samhandler der sikkerhet og konfidensialitet er viktig.
De mest populære databasene som støtter lagrede prosedyrer er mysql, firebird, ms sql server, oracle, db2 postgresql, sybase (først for å opprette et databasetransaksjonsspråk for sql kalt Transact-SQL).Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave