Stored Procedure / PHPmyadmin-Problem

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

  • Stored Procedure / PHPmyadmin-Problem

    Hallo,

    vielleicht könnt Ihr mir einen Tipp geben was ich machen kann.

    Ich möchte eine Stored Procedure erstellen, jedoch beim Upload erhalte ich immer wieder eine Fehlermeldung.
    Fehlermeldung: Syntax-Error bei INSERT INTO `events`
    ich weiß nicht was ich falsch mache.

    ::::::::::::::::::::::::::::::::::::::::::::::::::::
    CREATE PROCEDURE addevent (
    _userid int(11),
    _eventcat int(3),
    _city varchar(40),
    _bundesland int(2),
    _subject varchar(250),
    _event mediumtext,
    _eventdate date,
    _public tinyint(1),
    _allowsmilies tinyint(1),
    _allowhtml tinyint(1),
    _allowbbcode tinyint(1),
    _allowimages tinyint(1)
    )

    BEGIN
    INSERT INTO `events` (`userid`, `eventcat`, `city`, `bundesland`, `subject`, `event`, `eventdate`, `public`, `allowsmilies`, `allowhtml`, `allowbbcode`, `allowimages`)
    VALUES (_userid, _eventcat, _city, _bundesland, _subject, _event, _eventdate, _public, _allowsmilies, _allowhtml, _allowbbcode, _allowimages);

    select LAST_INSERT_ID();
    end;

  • #2
    PMA splitted die Eingabe an allen ; und führt jeden Teil einzeln aus. Schau mal in der Doku von PMA ob man das Zerhacken ausschalten kann. Wahrscheinlich nicht.

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      PMA splitted die Eingabe an allen ; und führt jeden Teil einzeln aus. Schau mal in der Doku von PMA ob man das Zerhacken ausschalten kann. Wahrscheinlich nicht.
      danke für Deine schnelle Antwort.
      Ja irgendwie seltsam, hab bisher nichts gefunden, aber mal schaue , ob ich noch was finde.

      Kommentar


      • #4
        Man kann den Delimiter ändern, genauso wie beim cmd-Client auch afaik
        Ansonsten nimmt halt den cmd-Client direkt...

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          http://www.mysql.com/news-and-events...000000297.html

          Kommentar


          • #6
            Ansonsten ist der MySQL Query Browser (aus MySQL GUI Tools 5.0, siehe mysql.com) auch ganz brauchbar für diese Aktionen...

            Kommentar


            • #7
              habe die Prozedur nun mit dem query browser angelegt, da die Änderung des delimiter unter meiner pypmyadmin version nicht funktioniert.

              Die Prozedur sieht nun so aus:

              DELIMITER $$

              DROP PROCEDURE IF EXISTS `usrdb`.`proc` $$
              CREATE /* DEFINER=`usr`@`%` */ PROCEDURE `proc`(IN iuserid int(11), IN ieventcat int(3), IN icity varchar(40), IN ibundesland int(2), IN isubject varchar(250),
              IN ievent mediumtext, IN ieventdate date, IN ipublic tinyint(1), IN iallowsmilies tinyint(1), IN iallowhtml tinyint(1), IN iallowbbcode tinyint(1),
              IN iallowimages tinyint(1))
              BEGIN
              INSERT INTO evt (userid, eventcat, city, bundesland, subject, event, eventdate, public, allowsmilies, allowhtml, allowbbcode, allowimages)
              VALUES (iuserid, ieventcat, icity, ibundesland, isubject, ievent, ieventdate, ipublic, iallowsmilies, iallowhtml, iallowbbcode, iallowimages);
              SELECT LAST_INSERT_ID();
              END $$

              DELIMITER ;


              habe nun in der php folgendes gemacht:

              $sql2 = 'CALL eventid_proc("Wert1"wert2"wert3.....)';

              jedoch wird nichts in der DB gespeichert :-(

              Kommentar


              • #8
                $sql2 = 'CALL eventid_proc("Wert1"wert2"wert3.....)';
                In PHP kannst du nur mit mysqli Stored Procedures aufrufen. Siehe Kommentare unter http://www.php.net/manual/de/functio...ulti-query.php
                Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                Kommentar


                • #9
                  eventid_proc != proc

                  Kommentar


                  • #10
                    danke für eure Antworten,

                    habe jetzt noch mal folgendes ausprobiert:

                    $result =$db->unbuffered_query("CALL eventid_proc('Wert1, Wert2 usw.')");

                    und es klappt

                    Kommentar

                    Lädt...
                    X