Warehouse-Prozeduren mit Parametern aus PHP

Die gespeicherten Prozeduren sind sehr nützlich, um Datenbankvorgänge zu kapseln und Zeit bei der Entwicklung zu sparen.

Wenn Sie eine Datenbank mit vielen Transaktionen und einer gewissen Vertraulichkeit pflegen müssen, können Sie ein Entwicklerteam haben, das Code erstellt, ohne zu wissen, wie die Datenbank ist.

Hierfür werden gespeicherte Prozeduren verwendet

Beispiel
Wir erstellen eine Datenbank für eine Immobilie und eine Tabelle für eine Immobilie (wir verwenden nur wenige Felder, um keinen umfangreichen Code zu generieren und das kann verwirren)

 TABELLE ERSTELLEN, WENN ES KEINE "Immobilie" GIBT ( `id` int (11) NICHT NULL AUTO_INCREMENT, `typemovable` varchar (100) DEFAULT '0', `price` decimal (10,2) DEFAULT '0.00', `description` text, PRIMARY KEY (`id`) ) ENGINE = MyISAM AUTO_INCREMENT = 195 DEFAULT CHARSET = latin1; 

Ich erstelle eine neue gespeicherte Prozedur, um Immobilien in die Datenbank einzufügen. Wenn ich es definiere, weise ich ihm als Parameter die Daten zu, die er akzeptieren muss, in diesem Fall Eigenschaft, Preis und Beschreibung, jedes mit seinem mysql-Format, schreibe ich auch die INSERT-Aktion

Procedures_mysql.jpg

Dann erstellen wir ein HTML-Dateneingabeformular, um die Werte der neuen Eigenschaften einzugeben.

Procedures_mysql_2.jpg

[color = # 000000] Hier senden wir die Informationen an eine Datei save.php, die die gespeicherte Prozedur aufruft und die Daten aufzeichnet. [/ color]

[color = # 000000] Dazu müssen wir zuvor den Code erstellt haben, um eine Verbindung zur Datenbank herzustellen. [/ color]
[color = # 000000] Erstelle eine Datei config.php [/ color]

<? php

// Verbindungskette zur Datenbank

$ link = mysql_connect (‘localhost’, ‘user’, ‘password’);

// Verbindung zur Datenbank

if (! $ link) {

die (‘Nicht verbunden:’. mysql_error ());

}

// Datenbank auswählen

$ db = ‘dbReal Estate’;

See also  So stellen Sie den WhatsApp-Chat auf Ihren persönlichen Geschmack ein

if (! mysql_select_db ($ db)) {

die (‘Error:’. mysql_error ());

}?>

Procedures_mysql_3.jpg

Im Bild sehen wir, wie die gespeicherte Prozedur von der SQL-Anweisung CALL aufgerufen wird

CALL neues Haus (parametro1, parametro2, …)

Wir erstellen eine weitere Prozedur, die in der Datenbank gespeichert ist, um sie nach Eigenschaftstyp abzurufen.

CREATE-Prozedur listarinmueble (Typ varchar (150))

[Einzug = 1] SELECT * FROM Immobilien WHERE Eigenschaft LIKE Typ

Zusätzlich zur Verwendung in PHP können wir die Abfrage von jeder Software ausführen, die in diesem Fall SQL und MySQL unterstützt.

Wir testen die gespeicherte Prozedur listmobile nach Typ in diesem Fall mit der Verwaltungssoftware mysql Heidisql

CALL listarinmueble (‘Haus’)

Das Ergebnis ist unten zu sehen, da es nach Eigenschaftstyp gefiltert wurde.

Procedures_mysql_4.jpg

Wir können auch eine gespeicherte Prozedur zum Löschen von Daten erstellen, in der wir als Parameter die ID senden

[color = # 000000] CREATE procedure removeinfurniture (idinmueble INT) [/ color]
[color = # 000000] SELECT * FROM Immobilien WHERE id = idinmueble [/ color]

Dann rufen wir die gespeicherte Prozedur wie folgt auf

Anruf entfernbar (172)

Das Interessante daran ist, dass wir als Datenbankadministratoren eines sehr komplexen Systems den Programmierern nur die Liste der Prozeduren und nicht die Struktur der Datenbank zur Verfügung stellen könnten, was eine größere Vertraulichkeit gewährleistet.

Sie können mit den Daten interagieren, aber nicht mit der Struktur, auch wenn sie nur lesen, aber nicht ändern können. Dies wäre ein Thema für große Datenbanksysteme, bei denen viele Personen interagieren, wenn Sicherheit und Vertraulichkeit wichtig sind.

Die bekanntesten Datenbanken, die gespeicherte Prozeduren unterstützen, sind mysql, firebird, ms sql server, oracle, db2 postgresql und sybase.

See also  So fügen Sie Excel 2019 Edition und ein geschütztes Blatt hinzu

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *