偶没有用过存储过程,现在请教一下大侠们给个例子,要求是如何在mysql里建立一个存储过程来实现对某个表的插入,修改,删除,查询操作,然后在php里面如何调用这个存储过程,俺知道这个对于大侠们小菜一碟,不过对于我可是救命啊,俺抛出二十分跪求,不够再加,说明越详细滴偶分给滴越高,感激涕零~~~

解决方案 »

  1.   

    <?php
    //事务处理在PHP+MySQL中的用法实例
    include("../function/config.php");
    header("Content-Type:text/html;charset=big5");
    if(!(UserRight(5,10,1))){header("Location:../Administrator/select.php");}
    ?>
    <?php
    $StockInCode = $_POST["StockInCode"];
    $StockInDate = $_POST["StockInDate"];
    $PartnerCode = $_POST["PartnerCode"];
    $SiteID  = $_POST["SiteID"];
    $Res = $_POST["Res"];
    $CreateUserID = $_SESSION['Userid'];
    $CreateDate = date("Y-m-d H:i:s");
    $input_num = $_POST["input_num"];$sql="select * from stockin where StockInCode='$StockInCode'";
    $result=mysql_fetch_row(mysql_query($sql));if($result)
    {
     echo ("<script type='text/javascript'> alert('StockInCode is exist!');history.go(-1);</script>");
     exit();
    }
    else
    {
     mysql_query("SET AUTOCOMMIT=0");
     mysql_query("BEGIN");
     for ($i=0;$i<$input_num;$i++){
      $ProgramCode = $_POST["ProgramCode".$i];
      $ItemCode = $_POST["ItemCode".$i];
      $ItemQTY = $_POST["ItemQTY".$i];
      if(empty($ItemQTY)){
       $ItemQTY = 0;
      }
      if(!(empty($ProgramCode))){
       $sql_sb = "select * from stockbalance where PartnerCode='$PartnerCode' and ProgramCode='$ProgramCode' and ItemCode='$ItemCode' and SiteID='$SiteID'";
       $result_sb = mysql_fetch_row(mysql_query($sql_sb));
       if($result_sb){
        $sql_up_sb = "update stockbalance set QTY=QTY+$ItemQTY,UpdateUserID='$CreateUserID',LastUpdate='$CreateDate' where PartnerCode='$PartnerCode' and ProgramCode='$ProgramCode' and ItemCode='$ItemCode' and SiteID='$SiteID'";
        //echo $sql_up_sb."<br>";
        //mysql_query($sql_up_sb);
        if(!mysql_query($sql_up_sb)){mysql_query("ROOLBACK");}
       }else{
        $sql_in_sb="insert into stockbalance (PartnerCode,SiteID,ProgramCode,ItemCode,QTY,CreateUserID,CreateDate) values('$PartnerCode','$SiteID','$ProgramCode','$ItemCode','$ItemQTY','$CreateUserID','$CreateDate')";
        //echo $sql_in_sb."<br>";
        //mysql_query($sql_in_sb);
        if(!mysql_query($sql_in_sb)){mysql_query("ROOLBACK");}
       }
       $sql_il = "insert into stockinitem (PartnerCode,SiteID,ProgramCode,StockInCode,ItemCode,QTY) values('$PartnerCode','$SiteID','$ProgramCode','$StockInCode','$ItemCode','$ItemQTY')";
       //echo $sql_il."<br>";
       //mysql_query($sql_il);
       if(!mysql_query($sql_il)){mysql_query("ROOLBACK");}
      }
     }
     $sql_is="insert into stockin (StockInCode,StockInDate,PartnerCode,SiteID,Res,CreateUserID,CreateDate) values('$StockInCode','$StockInDate','$PartnerCode','$SiteID','$Res','$CreateUserID','$CreateDate')";
     //echo $sql_is."<br>";
     //mysql_query($sql_is);
     if(!mysql_query($sql_is)){mysql_query("ROOLBACK");}
     mysql_query("COMMIT");
     echo ("<script type='text/javascript'> location.href='stock_in.php';</script>");
    }
    ?>
      

  2.   

    楼上的写的不叫什么存储过程,根本就是SQL语句,这方面资料网上挺多的,首先是写存储过程,然后就像调用函数那样执行存储过程,但是是执行的mysql里面的.然后mysql会反回相应的数据给php,这些就相当于执行了一段sql语句后获得的数据. 上面的只是一种事务.
    http://blog.csdn.net/chenxiaohong3905/archive/2005/04/28/366297.aspx 这个可以算是一个存储过程,楼主可以参考一下,具体能不能用,本人也没有试过,只是说形式就是这样的.