[erledigt] MySQL: Stored Procedures

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

jotobi

Threadstarter
Dabei seit
06.07.2005
Beiträge
125
Alter
34
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:

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);
 

jotobi

Threadstarter
Dabei seit
06.07.2005
Beiträge
125
Alter
34
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.
 

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...
 

jotobi

Threadstarter
Dabei seit
06.07.2005
Beiträge
125
Alter
34
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).
 

LauxAimoEwa

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

jotobi

Threadstarter
Dabei seit
06.07.2005
Beiträge
125
Alter
34
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.
 

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....
 

jotobi

Threadstarter
Dabei seit
06.07.2005
Beiträge
125
Alter
34
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

GELÖST MySql abfrage in Klasse per return zurück: Hi Ich hab eine Klasse MySql Dazu gehört die funktion read_entry, diese liest alle Dateinbank einträge ein und speicher jeden in thing[1]...
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 [email protected]
Bild stimmt nicht mit Ton ueberein!?: Hallo, ich habe folgendes Problem: :wut :wut (naja, eingentlich sind es zwei) 1.: Waehrend der Wiedergabe von z.B. Divx oder MPEG Filmen laeuft...
Wie man/frau ein (Batch-)Programm schreibt: Hi Die Systemfunktionen des Kommandointerpreters sind hilfreich und nuetzlich fuer alle moeglichen Aufgaben, aber leider schlecht bis gar nicht...
Der Dau V 2.10: 1994 (Duemmster Anzunehmender User) Also der Cousin eines Freundes arbeitet wirklich in der Serviceabteilung bei Nixdorf...
Oben