需要在php mysqli中使用Begin,Commit和RollBack事务的正确语法

时间:2019-01-17 06:39:53

标签: javascript php

在我的代码中,我生成了一个分类帐代码,并且对于每个新的插入记录而言应该是唯一的,因此在按下提交按钮之后,它将发布文本框的所有值,包括该“生成的代码”,因此我将其称为{{1} }功能再次在开始和提交时创建唯一的代码。

请给我一个准则,即即使有多个用户一次插入记录,我是否已将“开始和提交”放在正确的位置,以及如何为每个插入记录生成唯一的分类帐代码?另外,请告诉我这个概念还有其他窍门吗?

GenerateCode()函数在标记中,我在PHP中再次调用过该标记;我也用过GenerateCode()但没有用

START TRANSACTION

这是我在Head标签中调用的用于代码生成的Javascript函数

<?php 
      include_once('dbConnect.php'); 
      // Insert 
     if(isset($_POST['Submit'])) 
    {                       
        $url = trim($_POST['URL']);             
        $ptype = trim($_POST['HID']);           
        $AcName = trim($_POST['LName']); 
        $Description = trim($_POST['descr']);           

          //*** Start Transaction ***//  
           mysqli_query($dbCon,"BEGIN");   

    echo "<script> alert('Function Called!!!'); GenerateCode(); </script>";   // This is Javascript function called for code Generartion again              
    $Code =  trim($_POST['code']);  // Posted that Assigned code to variable    

// Insert Query             
        $Query = "insert into ma_cal(CAL_CahId,CAL_Code,CAL_Name,CAL_Description) values ('$ptype','$Code','$AcName','$Description')";                              
   $Result = @mysqli_query($dbCon,$Query);  

       if(!$Result) 
       {
      //*** RollBack Transaction ***//                       
            mysqli_query($dbCon,"ROLLBACK"); 
            $DB_Error = "Database Error => ".mysqli_error($dbCon); 
        }           
        else
        {
          //*** Commit Transaction ***//                         
         mysqli_query($dbCon,"COMMIT");                             
          $InsertSuccess = "Done";
        }    
}  // If end  ?>

GenerateCode()为每个插入编写Javascript函数,即使一次有多个用户使用相同的表单,也应该在其中生成唯一的代码;为此提供适当的解决方案

0 个答案:

没有答案