2014-02-17 3 views
0

это моя хранимая процедура:MySQL запрос не работает внутри хранимой процедуры

CREATE DEFINER=`root`@`localhost` PROCEDURE `isUserValid`(IN `facebookId` VARCHAR(20), IN `userAccessToken` TEXT) 
    NO SQL 
    COMMENT 'check if user is valid. return true or false' 
Begin 
    /* declare the select resluts variables*/ 
    Declare accessToken TEXT; 
    Declare expires datetime; 

    /* fill the variables with saved user's access token an expires time*/ 
    Select Access_Token, Expires 
    Into accessToken, expires 
    From Users Where Facebook_Id = facebookId;  

    select expires,accessToken; 
    /* If the saved access token and expires are valid return true */ 
    If (BINARY accessToken = userAccessToken And expires > now()) Then 
     select true As isUserValid; 
    Else 
     select false As isUserValid; 
    End If; 
End 

по какой-то причине запрос:

/* fill the variables with saved user's access token an expires time*/ 
Select Access_Token, Expires 
Into accessToken, expires 
From Users Where Facebook_Id = facebookId; 

возвращают Expires утратившим все время.

Когда я бегу тот же запрос вне процедуры - она ​​возвращает Истекает как значение ...

Я не могу понять, что это неправильно ...

ответ

0

Ok нашел, Вы должны указать разные имена для переменных и полей.

Срок действия моего истечения в таблице равен Истекает в таблице, поэтому он всегда равен нулю.

Смежные вопросы