Clausismus: MySQL Datenbank mit Login-System.

Beitrag lesen

Hi,
ich wollte gerne ein Login-System in MySQL über eine gespeicherte Prozedur schreiben:
Erstmal bisschen Code:

CREATE DATABASE Test;
USE Test;

CREATE TABLE Test.t_Benutzer
(
 Name CHAR(32),
 Passwort CHAR(32),
 PRIMARY KEY(Name)
);

INSERT INTO Test.t_Benutzer(Name ,Passwort) VALUES ('root', '0000');

Die SQL-Befehle im oberigen Code funktionieren über "PHPMyAdmin" perfekt.
Meine Idee war, dass bei jeden Aufruf einer gespeicherte Prozedur, erstmal überprüft wird, ob Benutzer und Passwort, die in der Tabelle "Test.t_Benutzer" stehen richtig ist.

Ich hab mir deshalb diese gespeicherte Prozedur geschrieben:

DELIMITER $$

CREATE PROCEDURE Test.Anmelden(IN BenutzerName CHAR(32), IN Passwort CHAR(32), OUT Angemeldet BOOL)
BEGIN
 DECLARE erfolg BOOL DEFAULT FALSE;
 DECLARE passw CHAR(32);
 SELECT Passwort INTO passw FROM Test.t_Benutzer WHERE Name=BenutzerName;
 IF passw=Passwort THEN
  erfolg=TRUE;
 END IF;
 SELECT erfolg INTO Angemeldet;
END$$

DELIMITER;

Die gespeicherte Prozedur soll überprüfen, ob der Benutzername und Passwort richtig ist, indem FALSE oder TRUE, je nachdem ob richtig angemeldet, über den Parameter
"Angemeldet" zurückgeliefert wird.

Das Problem ist:

1. Ich hantiere zum ersten mal mit gespeicherten Prozeduren (NOOB).

2. PHPMyAdmin liefert mir eine Fehlermeldung bei dem einfügen der gespeicherte Prozedur, die ich nicht verstehe:

SQL-Befehl:

DELIMITER $$ CREATE PROCEDURE Test.Anmelden(
IN BenutzerNameCHAR( 32 ) ,
IN PasswortCHAR( 32 ) ,
OUT Angemeldet BOOL
) BEGIN DECLARE erfolg BOOL DEFAULTFALSE;

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$

CREATE PROCEDURE Test.Anmelden(IN BenutzerName CHAR(32), IN Pass' at line 1

Ich hoffe ihr könnt mir helfen.

Thx