簡體   English   中英

使用MySQL進行交易?

[英]Transactions with MySQL?

我有帶InnoDB存儲引擎的表。 我要在一切正確的情況下開始插入過程。 我怎樣才能做到這一點 ?

您可以使用支持事務的MySQLi類輕松地做到這一點。

這是一個例子:

<?php
    $mysqli = new mysqli("example.com", "user", "password", "database");
    $mysqli->autocommit(false);

    $mysqli->query("INSERT INTO test(id) VALUES (1)");
    $mysqli->rollback();

    $mysqli->query("INSERT INTO test(id) VALUES (2)");
    $mysqli->commit();
?>

在這里您可以找到一些文檔示例。

另外,如果您使用的是框架,請查看其文檔。 通常情況下,交易的實現和方法非常酷。

這是CodeIgniter中非常智能的交易算法的示例:

$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
$this->db->trans_complete();

如果其中一個查詢有錯誤,CodeIgniter會自動處理事務,並角色回退更改。 CodeIgniter的交易方式

無論您使用哪個PHP庫,都可以始終使用以下任一語句來啟動事務:

  • SET autocommit = off
  • BEGIN
  • START TRANSACTION

一旦開始,您可以做很多工作,當您准備永久保存它時,請執行以下提交:

  • COMMIT

或者,當您要撤消進行中的工作(直到上一個提交時刻)時,請執行回滾:

  • ROLLBACK

您可以使用任何適用於mysql的php庫,將它們簡單地作為普通SQL語句運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM