[erledigt] MySQL: Stored Procedures

Diskutiere [erledigt] MySQL: Stored Procedures im Datenbanken Forum im Bereich Datenbanken; Hi, hab ne Frage zu der Verwendung von stored procedures in MySQL. Ich hab gelesen, dass der Schutz vor SQL-Injektion (also unberechtigte...
#1
jotobi

jotobi

Dabei seit
06.07.2005
Beiträge
125
Alter
32
Hi, hab ne Frage zu der Verwendung von stored procedures in MySQL. Ich hab gelesen, dass der Schutz vor SQL-Injektion (also unberechtigte Datenbankmanipulationen durch den Benutzer) erst durch einen parametrisierten Aufruf gewährleistet ist. Leider weiß ich nicht, was man unter einem "parametrisierten Aufruf" versteht.

Und dann noch ne andere Frage gleich hinterher, kann man die Procedures in PHP einfach wie normale SQL Anweisungen aufrufen?

Also z.B:

PHP:
$sql = "CALL testProcedure()";
$result = mysql_query($sql);
 
Zuletzt bearbeitet:
#2
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
Zum ersten: Vermutlich sowas wie

IF Parameter1 not "Leg_jetzt_los" then end

..


Zum Zweiten: Ja. Einfach den Namen der Prozedur statt nem SELECT aufrufen. Parameter einfach dahinter schreiben (Kommagetrennt). Beispiel:

$sql = "CALL testProcedure Parameter1, parameter2";
$result = mysql_query($sql);
 
#3
jotobi

jotobi

Dabei seit
06.07.2005
Beiträge
125
Alter
32
Danke, aber wenn ich das so mache, dann kommt

"Warning: mysql_fetch_assoc(): supplied argument ist not a valid MySQL result..."

Oder wie greif ich sonst auf die Daten zu, die mir zurückgeliefert werden ?

z.B.

CREATE PROCEDURE()
SELECT * from tblTestwerte;


Normalerweise geht das ja so mit mysql_fetch_assoc(), wenn ich eine normale Select Abfrage mache.
 
#4
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
Ups, Hab da etwas zuviel von Dir kopiert... Also der Aufruf müsste ohne CALL vorne auskommen..

$sql = "testProcedure Parameter1, parameter2";
$result = mysql_query($sql);


Die Abfrage der Ergebnisse:

while($row=mysql_fetch_array($result)) {
$row[0] (für den ersten Rückgabe-Parameter)
$row[1] (für den zweiten Rückgabe-Parameter)...
}

...

Müsste klappen...
 
#5
jotobi

jotobi

Dabei seit
06.07.2005
Beiträge
125
Alter
32
Mhh. Leider nicht. Die Prozedur funktioniert aber, ich habs im MySQL Front getestet. Aber irgenwie kommt immer noch die gleiche Fehlermeldung (nur jetzt halt für mysql_fetch_array).
 
#6
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
Kann es sein, dass Du nicht genügend Rechte auf die Datenbank hast?
 
#7
jotobi

jotobi

Dabei seit
06.07.2005
Beiträge
125
Alter
32
Ne, bin ja gerade nur am testen und bin als root in der datenbank.

Ich hab jetzt mal ein INSERT INTO Befehl in die Prozedur geschrieben. Das funktioniert. Hat vielleicht PHP was gegen SELECT Anweisungen in Stored Procedures?

Das hat jetzt übrigens mit

$sql = "call insertWert()";

geklappt, anders nicht.
 
#8
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
Hmpf - die MySQL Syntax für die Stored Procedures kenn ich leider nicht - Aber möglich, dass da noch ein wenig mehr Aufwand dahintersteckt, als bei "Standard"-SQLs....
 
#9
jotobi

jotobi

Dabei seit
06.07.2005
Beiträge
125
Alter
32
Aso, ganz vergessen. Wollte ja noch schreiben, dass man dafür die mysqli Funktionen von php benötigt. Damit kann man dann die Stored Procedures dann ausführen. :-)

Das nur noch als Nachtrag!
 
Thema:

[erledigt] MySQL: Stored Procedures

[erledigt] MySQL: Stored Procedures - Ähnliche Themen

  • Aufgaben werden fälschlicherweise als erledigt angezeigt

    Aufgaben werden fälschlicherweise als erledigt angezeigt: Hallo, meine Aufgaben werden fälschlicherweise als erledigt angezeigt. Wenn ich sie öffne, dann sind sie "nicht begonnen", erscheinen aber...
  • Daten weg? HAT SICH ERLEDIGT!!!! DANKE

    Daten weg? HAT SICH ERLEDIGT!!!! DANKE: Habe seit gestern einen neuen Laptop - nun finde ich meine auf OneDrive und Google Maps (Bilder und Zeitachse) gespeicherten Daten nicht mehr -...
  • [Erledigt] Steam client unbrauchbar

    [Erledigt] Steam client unbrauchbar: Hallo, seit ein paar Tagen läuft der Steam client nicht mehr richtig. Seit heute ist er nun unbrauchbar. Bisher öffnete das Programmfenster...
  • Erledigt: Checkdisk mit jedem neuen Windows-7-Start, wenn ich vorher Windows 10 gestartet hatte

    Erledigt: Checkdisk mit jedem neuen Windows-7-Start, wenn ich vorher Windows 10 gestartet hatte: Hallo Zusammen, Ich habe drei Betriebssysteme und eine Speicherpartition auf 2 Festplatten zu je 1 TB verteilt. 1 Platte: 75 % Linux Mint...
  • GELÖST [Erledigt] mySQL User anlegen über PHP

    GELÖST [Erledigt] mySQL User anlegen über PHP: Frage 1: Ist es möglich? Frage 2: Wenn ja, wie? Mein Versuch war wie folgt: mysql_query(grant select on kunden.db.kunden to test@localhost...
  • Ähnliche Themen

    Oben