久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

<i id='PEmj0'><tr id='PEmj0'><dt id='PEmj0'><q id='PEmj0'><span id='PEmj0'><b id='PEmj0'><form id='PEmj0'><ins id='PEmj0'></ins><ul id='PEmj0'></ul><sub id='PEmj0'></sub></form><legend id='PEmj0'></legend><bdo id='PEmj0'><pre id='PEmj0'><center id='PEmj0'></center></pre></bdo></b><th id='PEmj0'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='PEmj0'><tfoot id='PEmj0'></tfoot><dl id='PEmj0'><fieldset id='PEmj0'></fieldset></dl></div>

      1. <legend id='PEmj0'><style id='PEmj0'><dir id='PEmj0'><q id='PEmj0'></q></dir></style></legend>
        <tfoot id='PEmj0'></tfoot>

        <small id='PEmj0'></small><noframes id='PEmj0'>

          <bdo id='PEmj0'></bdo><ul id='PEmj0'></ul>

        php mysqli 自動提交和回滾的正確使用

        Proper usage of php mysqli autocommit and rollback(php mysqli 自動提交和回滾的正確使用)

            <tbody id='ptTM3'></tbody>

          <tfoot id='ptTM3'></tfoot>
        1. <small id='ptTM3'></small><noframes id='ptTM3'>

          <i id='ptTM3'><tr id='ptTM3'><dt id='ptTM3'><q id='ptTM3'><span id='ptTM3'><b id='ptTM3'><form id='ptTM3'><ins id='ptTM3'></ins><ul id='ptTM3'></ul><sub id='ptTM3'></sub></form><legend id='ptTM3'></legend><bdo id='ptTM3'><pre id='ptTM3'><center id='ptTM3'></center></pre></bdo></b><th id='ptTM3'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='ptTM3'><tfoot id='ptTM3'></tfoot><dl id='ptTM3'><fieldset id='ptTM3'></fieldset></dl></div>
          <legend id='ptTM3'><style id='ptTM3'><dir id='ptTM3'><q id='ptTM3'></q></dir></style></legend>

                • <bdo id='ptTM3'></bdo><ul id='ptTM3'></ul>
                • 本文介紹了php mysqli 自動提交和回滾的正確使用的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  在正確使用 mysqli 自動提交時遇到問題.以下是查詢.

                  Having trouble with proper usage of mysqli autocommit. Below are the queries.

                  Table1 和 Table3 是 InnoDB 而 Table2 是 MyISAM

                  Table1 and Table3 are InnoDB while Table2 is MyISAM

                  表 2 和表 3 的值已正確插入,但表 1 的值未存儲.運行代碼時沒有出現錯誤.

                  Values to Table2 and Table3 are inserted properly but values to Table1 are not being stored. No errors occur while running the code.

                  $dbconnect->autocommit(false);
                  
                  $stmt = $dbconnect->prepare("INSERT INTO `table1`(`col1`,`col2`) VALUES (?,?)");
                  $stmt->bind_param('ss',$val1,$val2);
                  $stmt->execute();
                  $dbconnect->rollback();
                  
                  $stmt = $dbconnect->prepare("INSERT INTO `table2`(`col1`,`col2`) VALUES (?,?)");
                  $stmt->bind_param('ss',$val3,$val4);
                  $stmt->execute();
                  $dbconnect->rollback();
                  
                  $stmt = $dbconnect->prepare("INSERT INTO `table3`(`col1`,`col2`) VALUES (?,?)");
                  $stmt->bind_param('ss',$val5,$val6);
                  $stmt->execute();
                  
                  $dbconnect->commit();
                  

                  何時以及如何使用 autocommit(false) 和 rollback()?

                  When and how do you use autocommit(false) and rollback()?

                  推薦答案

                  當您有一系列 sql 語句必須一起執行以保持數據庫中的一致性時,您可以使用它.將調用 commit 視為在游戲中建立保存點.任何時候調用 rollback 都會撤消上一次提交之前所做的一切.

                  You use it when you have a series of sql statements that must be performed together to maintain consistency in your database. Think of calling commit as establishing a save point in a game. Anytime you call rollback you undo everything that was done up to the previous commit.

                  想象一下,您需要在發票表中保存發票,在invoice_details 表中保存詳細信息,在付款表中保存付款.為了保持一致性,您需要確保這些都完成了或沒有完成.如果您在何處添加發票和詳細信息,然后插入付款失敗,那么您的數據庫將處于不一致狀態.

                  Imagine a situation where you need to save an invoice in your invoice table, details in your invoice_details table and payments in your payments table. To maintain consistency you need to make sure that these are all done or none of them is done. If you where to add the invoice and the details and then there was a failure on inserting the payment then your database is left in an inconsistent state.

                  通常這是使用像這樣的 try/catch 塊來完成的:

                  Normally this is accomplished using a try/catch block like this:

                  try {
                      $dbconnect->autocommit(false);
                  
                      $stmt = $dbconnect->prepare("INSERT INTO `invoices`(`col1`,`col2`) VALUES (?,?)");
                      $stmt->bind_param('ss',$val1,$val2);
                      $stmt->execute();
                  
                      $stmt = $dbconnect->prepare("INSERT INTO `invoice_details`(`col1`,`col2`) VALUES (?,?)");
                      $stmt->bind_param('ss',$val3,$val4);
                      $stmt->execute();
                  
                      $stmt = $dbconnect->prepare("INSERT INTO `payments`(`col1`,`col2`) VALUES (?,?)");
                      $stmt->bind_param('ss',$val5,$val6);
                      $stmt->execute();
                  
                      $dbconnect->commit();
                  } catch(Exception $e){
                      // undo everything that was done in the try block in the case of a failure.
                      $dbconnect->rollback();
                  
                      // throw another exception to inform the caller that the insert group failed.
                      throw new StorageException("I couldn't save the invoice");
                  }
                  

                  這篇關于php mysqli 自動提交和回滾的正確使用的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  store_result() and get_result() in mysql returns false(mysql 中的 store_result() 和 get_result() 返回 false)
                  Call to undefined function mysqli_result::num_rows()(調用未定義的函數 mysqli_result::num_rows())
                  PHP Prepared Statement Problems(PHP 準備好的語句問題)
                  mysqli_fetch_array returning only one result(mysqli_fetch_array 只返回一個結果)
                  PHP MySQLi Multiple Inserts(PHP MySQLi 多次插入)
                  How do I make sure that values from MySQL keep their type in PHP?(如何確保 MySQL 中的值在 PHP 中保持其類型?)
                    <tbody id='Mqxpq'></tbody>

                          <small id='Mqxpq'></small><noframes id='Mqxpq'>

                        • <legend id='Mqxpq'><style id='Mqxpq'><dir id='Mqxpq'><q id='Mqxpq'></q></dir></style></legend>
                            <bdo id='Mqxpq'></bdo><ul id='Mqxpq'></ul>

                            <i id='Mqxpq'><tr id='Mqxpq'><dt id='Mqxpq'><q id='Mqxpq'><span id='Mqxpq'><b id='Mqxpq'><form id='Mqxpq'><ins id='Mqxpq'></ins><ul id='Mqxpq'></ul><sub id='Mqxpq'></sub></form><legend id='Mqxpq'></legend><bdo id='Mqxpq'><pre id='Mqxpq'><center id='Mqxpq'></center></pre></bdo></b><th id='Mqxpq'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='Mqxpq'><tfoot id='Mqxpq'></tfoot><dl id='Mqxpq'><fieldset id='Mqxpq'></fieldset></dl></div>

                          • <tfoot id='Mqxpq'></tfoot>
                            主站蜘蛛池模板: 久久精品国产一区 | 久久1区 | 91干b| 国产视频精品在线观看 | 天天操天天摸天天干 | 国产精品一区二区在线免费观看 | 韩日在线视频 | 久久天天 | 日本欧美在线观看视频 | 欧美在线小视频 | 久久综合伊人 | 国产精品久久久久久久久久软件 | 毛片综合 | 精品久久久久久18免费网站 | 中文字幕av在线 | 美女黄网站| 国产一区二区三区视频在线观看 | 国产福利精品一区 | 在线观看日韩精品视频 | 在线免费视频一区 | 午夜视频在线 | 久久精品一 | 亚洲成人第一页 | 国产成人精品999在线观看 | 日韩免费在线观看视频 | 日日摸夜夜添夜夜添特色大片 | 狠狠综合久久av一区二区老牛 | 精品欧美激情在线观看 | 国产精品久久久久久婷婷天堂 | 欧美成人免费在线视频 | 国产精品美女久久久免费 | 国产精品综合一区二区 | 中文字幕高清 | 国产精品国产精品国产专区不卡 | 中文字幕成人免费视频 | 亚洲精品久久久一区二区三区 | 日韩精品免费在线观看 | 国产精品日韩一区二区 | 久久里面有精品 | 国产精品18hdxxxⅹ在线 | 亚洲精品日韩欧美 |