MYSQL - StoredProcedure - falsches Ergebnis

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MYSQL - StoredProcedure - falsches Ergebnis

    Hi

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


    PHP-Code:

    CREATE PROCEDURE session
    .getdata(IN id VARCHAR(40))
    BEGIN
        UPDATE 
    `session`.`dataSET `accesstime` = UNIX_TIMESTAMP(UTC_TIMESTAMP()) WHERE `id` = id;
        
    SELECT `data`, `accesstime`, UNIX_TIMESTAMP(UTC_TIMESTAMP()) as timestamp FROM `session`.`dataWHERE `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

  • #2
    Hallo akkie
    mit Variablen sollte das aber gehen, z.B.

    create procedure testproc (IN param1 INT, OUT param2 datetime)
    BEGIN
    UPDATE test set thedate=now() where id=param1;
    SELECT thedate into param2 FROM test where id=param1;
    END

    dann call testproc(2,@ret) & select @ret

    Kommentar


    • #3
      Hi

      Danke für die schnelle Antwort.

      Geht das dann auch mit mehreren rückgabe Parametern und wie sieht dann das Select aus?

      select @ret1
      select @ret2

      oder
      select @ret1, @ret2

      Was mich noch Interessieren würde ist ob mein Procedure denn so richtig ist? Ob man das so mache kann?

      Mfg Akkie

      Kommentar


      • #4
        Geht, z.B.
        create procedure testproc (IN param1 INT, OUT param2 datetime, OUT param3 INT ... )
        [...]
        SELECT Spalte1,Spalte2 into param2,param3 ...


        und select @par1,@par2...
        Was mich noch Interessieren würde ist ob mein Procedure denn so richtig ist? Ob man das so mache kann?
        Na ja, halt abgesehen von den vars...

        Kommentar

        Lädt...
        X