mysql的存储过程放在哪里_mysql存储过程,这个错在哪里?
mysql存儲過程,這個錯在哪里?
關注:294??答案:2??mip版
解決時間 2021-01-28 01:15
提問者人潮擁擠你不在
2021-01-27 19:57
begin
declare cc,aa,bb int default 0;
declare t_error int default 0;
declare CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;
START TRANSACTION;
select guid into aa from mop510_characters.character where name=uname;
if aa=0 then
select @bb:=max(guid) from mop510_characters.item_instance;
set bb=@bb+1;
insert into mop510_characters.item_instance(guid,itemEntry,count) values (bb,"1400001",ucount);
select @cc:=max(id) from mop510_characters.mail;
set cc=@cc+1;
insert into mop510_characters.mail(id,subject,body,hasitems,receiver) values (cc,"標題","內容",1,aa);
insert into mop510_characters.mail_items(mail_id,item_guid,receiver) values (cc,bb,aa);
end if;
if t_error = 1 then
rollback;
else
commit;
end if;
end
最佳答案
二級知識專家嶒經忲氾濫
2021-01-27 20:46
我不清楚報錯是什么,不過看起來像是 if aa=0 then邏輯判斷有問題,這樣只有在 select guid into aa from mop510_characters.character where name=uname;查不到數據時才執行后面的insert語句
全部回答
1樓帞蕥
2021-01-27 22:02
要獲取id,用mysql_insert_id(),就可以了。
沒必要在查詢一次。
上面的代碼,沒必要選2次數據庫, or die(mysql_error());最好這樣寫,如果要標識,就這樣or die("a1".mysql_error());
我要舉報
如以上問答內容為低俗/色情/暴力/不良/侵權的信息,可以點下面鏈接進行舉報,我們會做出相應處理,感謝你的支持!
→點此我要舉報以上信息!←
推薦資訊
大家都在看
總結
以上是生活随笔為你收集整理的mysql的存储过程放在哪里_mysql存储过程,这个错在哪里?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php下拉列表 二级 联动,PHP+Aj
- 下一篇: docker更新容器命令 ,自启