MYSQL - StoredProcedure - falsches Ergebnis

akkie

Erfahrenes Mitglied
Hi

Ich bekomme beim Aufruf einer StoredProcedure ein falsches Ergebnis. Vielleicht kann mir ja jemand helfen.

PHP:
CREATE PROCEDURE session.getdata(IN id VARCHAR(40))
BEGIN
	UPDATE `session`.`data` SET `accesstime` = UNIX_TIMESTAMP(UTC_TIMESTAMP()) WHERE `id` = id;
	SELECT `data`, `accesstime`, UNIX_TIMESTAMP(UTC_TIMESTAMP()) as timestamp FROM `session`.`data` WHERE `id` = id;
END;

Und zwar liefert mir die Procedure alle Ergebnisse die in der Datenbak sind und nicht das mit der SessionId.

Habe ich eventuell einen Fehler mit der Procedure gemacht?

Mfg Akkie
 
MySQL kommt in den SPs ziemlich aus dem Konzept, wenn Variablen wie DB-Objekte heißen. Nenne Deine Variable (den Parameter) id um. Ich habe mir angewöhnt, immer ein Typ-Kürzel vor die Variablen zu schreiben (in Deinem Fall hieße die Variable dann vcId, vc für VarChar). Oder schreib' das @ vor die Variablen (dann also @id).

SQL:
CREATE PROCEDURE session.getdata(IN vcId VARCHAR(40)) 
BEGIN 
    UPDATE `session`.`data` SET `accesstime` = UNIX_TIMESTAMP(UTC_TIMESTAMP()) WHERE `id` = vcId; 
    SELECT `data`, `accesstime`, UNIX_TIMESTAMP(UTC_TIMESTAMP()) as timestamp FROM `session`.`data` WHERE `id` = vcId; 
END;
 
Zuletzt bearbeitet von einem Moderator:
Zurück