/*$EmailID 是输入参数*/declare $UserIDTemp int;set $UserIDTemp  = 0;/*下面这条语句明明可以看到UserID 为 1*/
select UserID from t_UserLogin where EmailID = $EmailID;
         
/*但是执行下面这条语句,$UserIDTemp 就是得不到UserID值*/
select $UserIDTemp = UserID from t_UserLogin where EmailID = $EmailID;          
是不是Mysql 赋值只能用SET语句,但是要从一个表里取出某个数据的话也只能
用SELECE 语句而不能用SET 命令。

解决方案 »

  1.   

    declare $UserIDTemp int;
    不是declare @UserIDTemp int?
      

  2.   

    select  UserID into $UserIDTemp  from t_UserLogin where EmailID = $EmailID;  试试,我没试过 :)
      

  3.   

    MYSQL中要用INTO语法。
    select UserID from t_UserLogin where EmailID = $EmailID into $UserIDTemp ;
      

  4.   

    应该用 
    select  UserID into $UserIDTemp  from t_UserLogin where EmailID = $EmailID;
    注意 Mysql的语法和MS SQL的语法是不一样的。
      

  5.   

    mysql中,除set语句外,赋值一律用 := 
    select $UserIDTemp := UserID from t_UserLogin where EmailID = $EmailID;
      

  6.   

    lz把变量名EmailID改一下就好,不能跟栏位名一样的,只是mysql存储过程的规定.
      

  7.   

    重要: SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。=============================
    录自mysql参考手册~
      

  8.   

         fuck you
      

  9.   


    fuck too 放你娘的屁