MySQL Stored Procedures - OUT Parameter
Daniel Kafe
- datenbank
Moin Moin,
ich arbeite heute zum ersten mal mit Stored Procedures unter MySQL. Dazu habe ich eine kurze Frage die sich in erster Linie an bereits erfahrene Programmierer richten sollte: Gibt es Möglichkeiten in nur einer Out-Variable mehrere Werte zu speichern, so eine Art Array? Oder Gibt es sonst noch Möglichkeiten mit Stored Procedures mehrere Werte über einen Bezeichner zurück zu geben? Ich dachte dabei erst an Select-Statements innerhalb der Procedure, Problem, Ich komm dann in meiner Anwendung(PHP) nicht an die Werte ran, bzw. weiß ich nicht wie. Wenn die Procedure eine OUT-Variable liefert, kann ich in der Anwendung mittels sql_query("select @result as wert") mir den Wert der Variablen holen. Ist mein Problem verständlich? Wie gehe ich hierbei am besten vor?
LG Daniel
Hi,
mit dem Feature "Stored Procedures" solltest du auch unter MySQL in der Lage sein einfach ganze Resultsets zurückzugeben. Allerdings nicht in einem OUT Parameter.
Wenn du eine einfache Prozedur schreibst
CREATE PROC abcProc
AS
SELECT * FROM myTable
... und diese dann ausführst, was bekommst du dann? Hast du mal versucht, dieselben PHP-Funktionen auf die MySQL-Resource anzuwenden als wenn du nur "SELECT ..." geschickt hättest?
Grüsse,
Frank
Hi,
CREATE PROC abcProc
AS
SELECT * FROM myTable
>
> ... und diese dann ausführst, was bekommst du dann? Hast du mal versucht, dieselben PHP-Funktionen auf die MySQL-Resource anzuwenden als wenn du nur "SELECT ..." geschickt hättest?
>
mhm, dachte das hätte ich schon erwähnt.
Select-Statements in Procedure wäre kein Problem, hab ich auch getestet, funzt wunderbar. Wenn ich nun in meinem PHP-Skript die Procedure aufrufe, Bespiel: sql\_query("call proc()"); dann wird ja das select-statement innerhalb der Procedure ausgeführt, wenn ich dann mittels sql\_fetch\_assoc() die Werte holen will, bekommeich NULL geliefert.