Spisie treści
Procedury składowane są bardzo przydatne do hermetyzacji operacji na bazie danych i oszczędzania czasu programowania.Kiedy musisz utrzymywać bazę danych z wieloma transakcjami i pewną poufnością, możesz mieć zespół programistów, którzy tworzą kod, nie wiedząc, jak wygląda baza danych.
W tym celu użyjemy procedur składowanych
Przykład
Tworzymy bazę danych dla Nieruchomości oraz tabelę dla nieruchomości (używamy kilku pól, aby nie generować rozbudowanego i mylącego kodu)
UTWÓRZ TABELĘ, JEŚLI NIE ISTNIEJE `nieruchomość` (` id` int (11) NOT NULL AUTO_INCREMENT, `furnituretype` varchar (100) DEFAULT '0',` cena` dziesiętna (10,2) DEFAULT '0.00', `description` tekst , KLUCZ PODSTAWOWY (`id`)) ENGINE = MyISAM AUTO_INCREMENT = 195 DOMYŚLNY ZESTAW ZNAKÓW = latin1;
Tworzę procedurę składowaną nowa nieruchomość aby wstawić właściwości do bazy danych. Definiując go przypisuję jako parametr dane, które musi zaakceptować, w tym przypadku właściwość, cenę i opis, każdy w swoim formacie mysql, wpisuję również akcję INSERT
Następnie tworzymy formularz rejestracji danych html w celu wprowadzenia wartości nowych właściwości.
[kolor = # 000000] Tutaj wysyłamy informacje do pliku save.php, który wywoła procedurę składowaną i to zapisze dane.[/color]
[color = # 000000] Aby to zrobić, musimy wcześniej utworzyć kod połączenia z bazą danych.[/ color]
[kolor = # 000000] Tworzymy plik config.php [/ kolor]
<?
// Ciąg połączenia z bazą danych
$ link = mysql_connect ('host lokalny', 'użytkownik', 'hasło');
// połączenie z bazą danych
jeśli (! $ link) {
die ('Nie połączono:'. mysql_error ());
}
// Wybierz bazę danych
$ db = 'dbInmobiliaria';
if (! mysql_select_db ($db)) {
die ('Błąd:'. mysql_error ());
}?> zm13 ->
Na obrazku widzimy, jak procedura składowana jest wywoływana za pomocą instrukcji SQL POŁĄCZENIECALL newinmueble (parametr1, parametr2, …)
Tworzymy kolejną procedurę składowaną w bazie danych, aby wysyłać zapytania według typu właściwości.Zestaw mebli zabiegowych CREATE (typ varchar (150))
[wcięcie = 1]SELECT * FROM właściwość WHERE właściwość LIKE typOprócz używania go w php, możemy wykonać zapytanie z dowolnego oprogramowania obsługującego w tym przypadku sql i mysql.
Przetestowaliśmy listę właściwości procedury składowanej według typu w tym przypadku z oprogramowania do zarządzania mysql Heidisql
CALL lista mebli („dom”)
Wynik można zobaczyć poniżej, ponieważ został przefiltrowany według typu właściwości.
Możemy również utworzyć procedurę składowaną, aby usunąć dane, w której wyślemy identyfikator jako parametr
[kolor = # 000000] CREATE procedura usuwania właściwości (właściwość id INT) [/ kolor]
[kolor = # 000000]SELECT * FROM nieruchomości WHERE id = id nieruchomości[/Kolor]
Następnie wywołujemy procedurę składowaną w następujący sposób
CALL usuń właściwość (172)
Co ciekawe, gdybyśmy byli administratorami baz danych bardzo złożonego systemu, moglibyśmy udostępnić programistom jedynie listę procedur, a nie strukturę bazy danych, co zapewnia większą poufność.
Pozwalając im na interakcję z danymi, ale nie ze strukturą, nawet jeśli mogą tylko czytać, ale nie mogą modyfikować. Byłby to problem w przypadku dużych systemów baz danych, w których wiele osób wchodzi w interakcje, gdzie ważne jest bezpieczeństwo i poufność.
Najpopularniejsze bazy danych obsługujące procedury składowane to mysql, firebird, serwer ms sql, oracle, db2 postgresql, sybase (najpierw utworzył język transakcyjny bazy danych dla sql o nazwie Transact-SQL).Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt