免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4211 | 回复: 7
打印 上一主题 下一主题

[请教]:如何显示MYSQL stored procedure的variable at PHP output??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-03 12:50 |只看该作者 |倒序浏览

  1. DELIMITER $$

  2. DROP PROCEDURE IF EXISTS `agent`.`addcom` $$
  3. CREATE PROCEDURE `addcom`(
  4.    in name1        varchar(20),
  5.    in username     integer(20),
  6.    in commission   integer(20),
  7.    in amount       integer(20),
  8.    out msg         varchar(20)
  9.   )
  10. begin
  11. declare co integer(20);

  12.   select cno into co from client where cdname=name1;
  13.   select co;
  14.   insert into site_acc_order (cno,cdname,usr,commis,amt) values (co,name1,username,commission,amount);
  15.   set msg=1;



  16. end $$
  17. DELIMITER ;
复制代码


========这是我 php 的 code !(我得不到 msql 的 set msg='Sucess'; 帮帮忙吧大家!!!)===========


  1. <? include("./spconn.php");
  2. $mysqli->real_query ("CALL addcom('".$_REQUEST['U']."','123456','".$_REQUEST['ccurid']."','".$_SESSION['uname']."','".$_REQUEST['name']."','".$_REQUEST['comm']."','".$_REQUEST['amt']."',@msg);select @msg;") or die(mysql_error());
  3. $objResult = $mysqli->store_result();
  4. $row = $objResult->fetch_assoc();

  5. if($row["msg"] == 1){
  6.    print "Success";
  7. } else {
  8.    print "error";                                       
  9. }

  10. $row->free_result();?>
复制代码

[ 本帖最后由 dannylim86 于 2008-8-5 17:45 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-08-04 12:03 |只看该作者
select 'SUCCESS';

论坛徽章:
0
3 [报告]
发表于 2008-08-04 17:11 |只看该作者

回复 #2 yueliangdao0608 的帖子

select 'SUCCESS'; at php or mysql???

论坛徽章:
0
4 [报告]
发表于 2008-08-04 20:25 |只看该作者
有两个方法,一个是在最后select 'success',比如在存储过程里面这样写:
if a > 1 then
    select 'success'
else
    select 'error'
end if;
在php端接收时,就像接收一个普通的数据库记录一样。

还有一种就是在定义存储过程时用out参数,CREATE PROCEDURE `addcom`(
   in name1        varchar(20),
   in username     integer(20),
   in commission   integer(20),
   in amount       integer(20),
   out msg         varchar(20)
  )

你这里面定义的参数都是in,还有一种叫out

论坛徽章:
0
5 [报告]
发表于 2008-08-05 01:50 |只看该作者

回复 #4 wangym 的帖子

谢谢你!!!我试试看

论坛徽章:
0
6 [报告]
发表于 2008-08-05 17:19 |只看该作者

回复 #4 wangym 的帖子

我试试还是不能!!!我写错了吗???

$mysqli->real_query ("CALL addcom('".$_REQUEST['U']."','123456','".$_REQUEST['ccurid']."','".$_SESSION['uname']."','".$_REQUEST['name']."','".$_REQUEST['comm']."','".$_REQUEST['amt']."',@msg);select @msg;") or die(mysql_error());
$objResult = $mysqli->store_result();
$row = $objResult->fetch_assoc();

if($row["msg"] == 1){
print "Success";
} else {
print "error";                                       
}

$row->free_result();

论坛徽章:
0
7 [报告]
发表于 2008-08-05 18:18 |只看该作者
得不到 @msg 的???

论坛徽章:
0
8 [报告]
发表于 2008-08-06 11:21 |只看该作者

回复 #7 dannylim86 的帖子

有人可以赐教我吗???
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP