有如下存储过程CREATE PROCEDURE user_degree(p_username varchar(21) CHARACTER SET utf8,out degree int)
Userdegree:
BEGIN
DECLARE td int ;
SELECT accepts INTO td FROM exercise_user WHERE
username= p_username;
IF (td>800) THEN SET degree=1;
ELSEIF (td>600) THEN SET degree=2;
ELSEIF (td>400) THEN SET degree=3;
ELSEIF (td>200) THEN SET degree=4;
ELSE SET degree=5;
END IF;
END现在我要在php中得到degree的值 ,在CMD里面我知道可以这样mysql> call user_degree('test',@test);
Query OK, 0 rows affected (0.14 sec)mysql> select @test;
+-------+
| @test |
+-------+
| 4 |
+-------+
1 row in set (0.00 sec)但我不知道在PHP中如何实现,希望哪位能给个范例,谢谢!
Userdegree:
BEGIN
DECLARE td int ;
SELECT accepts INTO td FROM exercise_user WHERE
username= p_username;
IF (td>800) THEN SET degree=1;
ELSEIF (td>600) THEN SET degree=2;
ELSEIF (td>400) THEN SET degree=3;
ELSEIF (td>200) THEN SET degree=4;
ELSE SET degree=5;
END IF;
END现在我要在php中得到degree的值 ,在CMD里面我知道可以这样mysql> call user_degree('test',@test);
Query OK, 0 rows affected (0.14 sec)mysql> select @test;
+-------+
| @test |
+-------+
| 4 |
+-------+
1 row in set (0.00 sec)但我不知道在PHP中如何实现,希望哪位能给个范例,谢谢!
然后再执行 mysql_query(select @test) 得到返回变量值。
我按照原来的方法返回的是 Resource id #7
代码如下:function userdegree1($username)
{
global $db;
$query1 = "call user_degree($username,@test);";
$db->query($query);
$query2 = "select @test;";
$degree = $db->query($query2);
echo $degree;
return $degree;
}
应该$degree[0]或什么之类的。