Avatar billede vutborg Nybegynder
03. februar 2007 - 15:05 Der er 2 kommentarer og
1 løsning

MD5 i stored procedures

Jeg har et problem med MD5 i nedenstående stored procedure:

DELIMITER $$

CREATE PROCEDURE `spValidateUser2`(IN _ClassID INT, IN _Username TEXT, IN _Password TEXT)
BEGIN

SELECT UserID FROM users WHERE ClassID = _ClassID AND username = _Username AND Password2 = MD5(_Username + _Password);

END $$

DELIMITER ;

Når jeg kalder den med spValidateUser2(7,"MyUsername", "MyPassword") så returnerer den ingenting.

Men hvis jeg modificerer select-statement'et til følgende ...AND Password2 = MD5("myUsernameMyPassword"), så returnerer den det korrekt UserID som den skal.

Så den virker altså ikke, hvis den skal læse brugernavn og kodeord fra input-variablerne, men det virker fint, hvis jeg blot indtaster et brugernavn og kodeord direkte i select-statement'et.

Hvad gør jeg galt?
Avatar billede coderdk Praktikant
03. februar 2007 - 15:25 #1
Prøvet at lave

_Username + _Password

om til:

CONCAT(_Username, _Password)

?
Avatar billede vutborg Nybegynder
03. februar 2007 - 15:29 #2
Det virker!!! :D

det var da utroligt - hvorfor er det nødvendigt? Jeg havde endda prøvet at fyre en trim af rundt om variablerne... Laver du et svar, så får du point.
Avatar billede coderdk Praktikant
03. februar 2007 - 22:37 #3
Dunno, SQL er lidt underlig :) Skal man sammensætte strenge skal man bruge CONCAT() :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester