Moin!
Moin!
DELIMITER //
DROP PROCEDURE sql_insert;CREATE PROCEDURE sql_insert()
begin
SELECT * FROM TABELLE;
end;
> > > Selbst diese einfach Prozedur lässt sich nicht erstellen und gibt mir als Fehler aus, dass ich die Syntax bei '; überprüfen soll...
> >
> > Wenn dein PHP kein mysqli unterstützt, weil die Extension nicht
> > installiert ist, dann kannst du dein Vorhaben vergessen.
> Doch doch, das ist alles vorhanden und eingerichtet. Und funktioniert bisher auch :)
Dann fang doch einfach mal an, mysqli zu benutzen. :) Sonst stößt du immer wieder auf Probleme.
> Seltsamerweise funktioniert folge Erstellung einer Prozedur, obwohl es auf diversen anderen Seiten nicht so beschrieben wird und trotzdem funktioniert. (Siehe anderes Beispiel von mir)
>
> ~~~sql
> DELIMITER //
>
> DROP PROCEDURE IF EXISTS `sql_select_output`//
> CREATE DEFINER=`root`@`localhost` PROCEDURE `sql_select_output`()
> begin
> insert into perprop.ppp_guest_tasks (user, task, credate) values ('User2', 'Test3', CURRENT_DATE());
> end
>
mysql_query teilt den als Parameter übergebenen String an jedem Semikolon auf und sendet dann nur den ersten Teil an MySQL ab. Heißt: Hier fehlt dir am Ende des Querys vermutlich der Befehl "end" - und wahrscheinlich korrigiert MySQL das stillschweigend (oder du ignorierst den Fehler), weil danach der Query sowieso zu Ende ist.
Sprich: Weil du den DELIMITER geändert hast, greift der Standardmechanismus von mysql_query nicht mehr.
Da du aber sowieso mysqli benötigst, erscheint es sehr unsinnig, sich eine Sonderlösung für mysql zu bauen.
- Sven Rautenberg