第一个存储过程例子(带输入和输出…

来源:互联网 发布:网络攻防靶机的环境 编辑:程序博客网 时间:2024/06/05 09:00
-------------------存储过程------------------
DELIMITER //
CREATE DEFINER=`root`@`%` PROCEDURE `onStackProcedure`(IN `p_sku` VARCHAR(50), IN `p_Cbarcode` VARCHAR(50), IN `p_palBarcode` vARCHAR(50), IN `p_osCount` INT)
    COMMENT '产品上架'
BEGIN
DECLARE v_skuID int;
DECLARE v_GCID int;
DECLARE v_palID int;
DECLARE v_osCountOld int default 0;
DECLARE v_osID int;
DECLARE v_CBid int;
DECLARE v_qlid int;
DECLARE o_result varchar(20);
DECLARE s_osID varchar(20);
DECLARE s_GCID varchar(20);
DECLARE s_pallID varchar(20);
DECLARE s_skuID varchar(20);
select skuID into v_skuID from skuList where sku = p_sku;
select globalContainer.GCID,StorBox.CBid into v_GCID, v_CBid from globalContainer
inner join StorBox on StorBox.CBid = globalContainer.CBid
where StorBox.Cbarcode = p_Cbarcode and globalContainer.skuID = v_skuID;
select palID into v_palID from pallets where palBarcode = p_palBarcode;
select osCount,osID into v_osCountOld ,v_osID from onStack where
skuID = v_skuID;
if v_osCountOld=0 then
 insert into onStack (skuID,osCount,GCID) values(v_skuID,p_osCount,v_GCID);
 select osID into v_osID from onStack where skuID = v_skuID and GCID = v_GCID;
else
 update onStack set osCount = v_osCountOld+p_osCount where osID = v_osID;
end if;
update StorBox set palID = v_palID where CBid = v_CBid;
update globalContainer set onState=3,onPlace=p_palBarcode,relationShipKey = v_osID
where GCID = v_GCID;
select qlid into v_qlid from QClist where GCID = v_GCID;
set s_osID = CONVERT(v_osID,CHAR);
set s_GCID = CONVERT(v_GCID,CHAR);
set s_pallID = CONVERT(v_palID,CHAR);
set s_skuID = CONVERT(v_skuID,CHAR);
set o_result = CONCAT(s_osID,'-',s_GCID);
set o_result = CONCAT(o_result,'-',s_pallID);
set o_result = CONCAT(o_result,'-',s_skuID);
select o_result;
END//
DELIMITER ;
---------神奇分割线--------------
PHP 调用存储过程,并处理返回参数
执行存储过程
 $db = $this->getAdapter();
   $sql = 'call onStackProcedure("'.$sku.'","'.$Cbarcode.'","'.$palBarcode.'",'.$osCount.')';
   $result = $db->query($sql);
返回参数处理
$arr = $result->fetchAll();
$resultString =  $arr[0]['o_result'];
   $resultString = (string)$resultString;
   $resultArray = explode('-',$resultString); //osID-GCID-palID-skuID
   $osID = $resultArray[0];
   $GCID = $resultArray[1];
   $palID = $resultArray[2];
   $skuID = $resultArray[3];
0 0
原创粉丝点击