这是我的存储过程:
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返回为null。
当我在程序之外运行相同的查询时 - 它将Expires返回为值...
我无法理解有什么不对......
答案 0 :(得分:1)
好的找到了, 您必须为变量和字段提供不同的名称。
我的过期与表格中的过期相同,因此它始终为空。