Strona 6 z 6

: 23 listopada 2011, 09:09
autor: LordRuthwen

Kod: Zaznacz cały

ERROR:  syntax error at or near "user"
LINE 1: ...ON update_password (oldpass text, cryptpass text, user text)...
                                                             ^
Dodane:
Czy ma ktoś jeszcze jakieś pomysły?

: 23 listopada 2011, 12:39
autor: mariaczi
Spróbuj zatem zrobić z tego "user" np.: "puser" (może niechybnie coś źle rozumie) i idąc za Bastianem byłoby to tak:

Kod: Zaznacz cały

CREATE FUNCTION update_password (oldpass text, cryptpass text, puser text) RETURNS text AS ' 
        BEGIN             
            DECLARE currentsalt varchar(20); 
            DECLARE error text;
            SET error = 'incorrect current password'; 
            SELECT substring_index(substr(puser.password,4),_latin1'$',1) INTO currentsalt FROM users WHERE username=puser;
            SELECT '' INTO error FROM users WHERE username=puser AND password=ENCRYPT(oldpass,currentsalt);
            UPDATE users SET password=cryptpass WHERE username=puser AND password=ENCRYPT(oldpass,currentsalt);
            RETURN error;
        END; '  language 'SQL';
PS. Usunąłeś wcześniej starą deklarację owej funkcji?