久久久久久久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 自動(dòng)提交和回滾的正確使用

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

            <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 自動(dòng)提交和回滾的正確使用的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

                  問(wèn)題描述

                  在正確使用 mysqli 自動(dòng)提交時(shí)遇到問(wèn)題.以下是查詢.

                  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 的值未存儲(chǔ).運(yùn)行代碼時(shí)沒(méi)有出現(xiàn)錯(cuò)誤.

                  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();
                  

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

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

                  推薦答案

                  當(dāng)您有一系列 sql 語(yǔ)句必須一起執(zhí)行以保持?jǐn)?shù)據(jù)庫(kù)中的一致性時(shí),您可以使用它.將調(diào)用 commit 視為在游戲中建立保存點(diǎn).任何時(shí)候調(diào)用 rollback 都會(huì)撤消上一次提交之前所做的一切.

                  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.

                  想象一下,您需要在發(fā)票表中保存發(fā)票,在invoice_details 表中保存詳細(xì)信息,在付款表中保存付款.為了保持一致性,您需要確保這些都完成了或沒(méi)有完成.如果您在何處添加發(fā)票和詳細(xì)信息,然后插入付款失敗,那么您的數(shù)據(jù)庫(kù)將處于不一致?tīng)顟B(tài).

                  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 塊來(lái)完成的:

                  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");
                  }
                  

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

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

                  相關(guān)文檔推薦

                  store_result() and get_result() in mysql returns false(mysql 中的 store_result() 和 get_result() 返回 false)
                  Call to undefined function mysqli_result::num_rows()(調(diào)用未定義的函數(shù) mysqli_result::num_rows())
                  PHP Prepared Statement Problems(PHP 準(zhǔn)備好的語(yǔ)句問(wèn)題)
                  mysqli_fetch_array returning only one result(mysqli_fetch_array 只返回一個(gè)結(jié)果)
                  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>
                            主站蜘蛛池模板: 黄色大片在线播放 | 国产精品欧美在线 | 欧美日韩精品一区二区 | 欧美18免费视频 | 99久久久国产精品免费蜜臀 | 日日操夜夜骑 | 国产精品视频专区 | 亚洲激情一区二区 | 天天天天干 | 久久靖品 | av片在线看 | 久久亚洲精品视频 | 黄色在线视频播放 | 超碰av在线播放 | 欧美一区二区视频在线观看 | 性大毛片视频 | 成人在线观看网站 | 免费网站黄 | 黄色大毛片 | 亚洲永久免费视频 | 久久依人| 亚洲天堂一区二区三区 | 视频一区在线观看 | 亚洲一区二区免费看 | 国产精品亚洲精品 | 国产特黄 | 国产精品毛片久久久久久久 | 成人精品| 国产精品美女久久久久av爽 | 婷婷色av| 午夜成人影片 | 精品视频久久 | 成人91视频 | 成人一区二区在线 | 成人免费网站黄 | 爱情岛论坛av | 成人精品在线观看 | 中文字幕av一区二区三区谷原希美 | 黄色一级片免费看 | 在线不卡av| a一级黄色片 |