如何 mysql 存储过程返回值

如何 mysql 存储过程返回值,第1张

mysql中要获得存储过程的返回值,可以增加一个out参数,用来返回。

mysql中存储过程的例子:

CREATE PROCEDURE addvoucher (

IN userid INT,

IN voucherid INT,

OUT result INT

)

BEGIN

SELECT

@endate_a := endate ,@batch_a := batch ,@c_count_a := c_count,

@isdead_a := isdead

FROM

t_voucher

WHERE

id = voucherid

SET autocommit = 0

IF EXISTS (

SELECT

*

FROM

t_user_voucher tuv,

t_voucher tv

WHERE

tv.id = tuv.voucherid

AND tv.batch =@batch_a

) THEN

SET result = 1-- 已存在

SELECT

result

ELSE

IF @c_count_a >0 THEN

IF (

TO_DAYS(@endate_a) - TO_DAYS(NOW())

) >0 THEN

IF @isdead_a = 1 THEN

INSERT INTO t_user_voucher (userid, voucherid, isdead)

VALUES

(userid, voucherid, 1)

UPDATE t_voucher SET c_count = c_count-1 where id = voucherid

SET result = 0-- 成功

END

mysql_query()一般是用来查询数据里面的数据。如:$username=$_POST["name"]$sql="SELECT *FROM members where login_name = 'username'"$result=mysql_query($sql)以上程序是检测数据库中是否存在表单传送过来的用户名。如果检测成功,$result是返回数据库中的匹配的记录,如果出错则$result为false。需要注意的是,即使数据库中不存在查询的数据,检测也算成功,$result也不会是false.所以,如果要检测数据库中是否有匹配记录就用语句mqsql_fetch_array()来判断。$test=mqsql_fetch_array($result)如果记录为空则$test为false。这样就达到了目的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7225991.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存