php script zum erstellen von mysql stored procedures

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

  • php script zum erstellen von mysql stored procedures

    hallo zusammen
    ich stelle meine anfrage bewusst ins php developer forum und nicht ins mysql forum. es geht zwar um eine mysql function aber ich möchte sie aus einem php script erstellen.

    also ich habe eine kleine test() stored function für mysql. wenn ich dieses CREATE FUNCTION statement via irgend einem lokalen mysql-client (sqlyog oder so was) gegen meine lokale mysql datenbank laufen lasse, wird diese auch schön angelegt (und funktioniert dann natürlich auch)

    nun ist es so dass mein provider nur myphpadmin zulässt und ich da KEINE stored procedures/functions erstellen kann.

    nun meine idee: ich erstelle mir eine php datei, lege diese auf den webserver und lasse mir die stored function via php erstellen.
    leider immer mit einem return code -1

    Also mein Script sieht so aus:

    [COLOR=orangered]
    DELIMITER $$

    DROP FUNCTION IF EXISTS `db1`.`test`$$

    CREATE function `db1`.`test` () returns varchar(200)
    BEGIN
    DECLARE vOut varchar(200);
    DECLARE vTemp varchar(200);
    DECLARE cur1 CURSOR FOR select 'kommt von der datenbank' from dual;
    OPEN cur1;
    FETCH cur1 INTO vTemp;
    SET vOut = vTemp;
    CLOSE cur1;
    return ifnull(vOut,'-');
    END$$

    DELIMITER ;
    [/COLOR]

    kann mir jemand sagen wie ich dieses ganze zeugs via php gegen die db absetzen kann? grundsätzlich weiss ich wie man SELECTS usw. gegen mysql aus php ausführt. nur leider blos nicht das mit CREATE FUNCTION oder CREATE PROCEDURE

    danke

  • #2
    Re: php script zum erstellen von mysql stored procedures

    Und was hindert dich daran, es genauso zu versuchen, wie du es mit anderen SQL-Statements auch machen würdest?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      hallo du hast recht.
      bei mir lokal funktionierts jetzt prima mit:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <title>PHP create mysql stored procedure/function</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      </head>
      DB Zugriff auf localhost:</strong><br>
      <?
      mysql_connect("localhost","xxx","xxxx");
      mysql_select_db("yyyyy");
      $result=mysql_query("
      DELIMITER $$

      DROP FUNCTION IF EXISTS yyyyy.test$$

      CREATE function yyyyy.test() returns varchar(200)
      BEGIN
      DECLARE vOut varchar(200);
      DECLARE vTemp varchar(200);
      DECLARE cur1 CURSOR FOR select 'kommt von der datenbank' from dual;
      OPEN cur1;
      FETCH cur1 INTO vTemp;
      SET vOut = vTemp;
      CLOSE cur1;
      return ifnull(vOut,'-');
      END$$

      DELIMITER ;
      ");
      ?>
      </p>
      </body>
      </html>


      ..... aber blöderweise nicht via web auf meinem provider. na ja ich glaube ich frage da besser mal nach...

      vielen dank

      Kommentar


      • #4
        Warum sehe ich dich bei der Benutzung von mysql_query keinerlei Fehlerbehandlung machen?
        So anfängerhaft sollte jemand, der stored procedures nutzt, doch wohl nicht an die Sache herangehen ...?


        OffTopic:
        Würde mich nicht wundern, wenn bei der Nachfrage beim Provider lediglich herauskommt, dass die dortige MySQL-Version das noch nicht unterstützt o.ä. ...
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X