我有几个关于存储过程的问题。经过几个小时的谷歌搜索,我真的找不到任何真正简单的查询示例。
CREATE PROCEDURE test1(IN uid INT)
BEGIN
SELECT USER_NAME FROM USERS WHERE USER_ID = uid;
END //
这个查询接受' uid‘作为输入,并为该uid选择用户名,有人能解释一下我如何在php中调用这个过程吗,还有,我如何将实际的行输出到php var?
发布于 2010-08-18 21:12:09
您应该考虑使用返回单个VARCHAR的存储函数来执行此操作:
CREATE FUNCTION test1(uid INT) RETURNS VARCHAR(100)
BEGIN
DECLARE V_RETURN_VAL VARCHAR(100);
SELECT USER_NAME
INTO V_RETURN_VAL
FROM USERS
WHERE USER_ID = uid;
RETURN V_RETURN_VAL;
END //
发布于 2010-08-18 19:43:56
AFAIK你只需要在查询中把call放在它之前:
$result = mysql_query("CALL test1(".$args.")");
$username = mysql_result($result);
发布于 2011-01-26 22:12:56
您只需使用"CALL“并检索行,就像它是一个普通查询一样。
唯一不同的情况是该过程返回多个结果集,在这种情况下,您必须使用一个给出下一个结果集的方法遍历所有结果集(即使是空的结果集)。
输出参数是浪费时间的,因为它们需要更多的往返和服务器端状态来获取结果;如果使用它们,您总是会编写更多的代码,并且会有更多的bug。
https://stackoverflow.com/questions/3511645
复制相似问题