v5:userguide:transactions
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
v5:userguide:transactions [2016/02/27 17:12] – [Smart Transactions] mnewnham | v5:userguide:transactions [2018/07/01 23:02] – prefer functions start lowercase (#430) peterdd | ||
---|---|---|---|
Line 1: | Line 1: | ||
======Transaction Handling In ADOdb ====== | ======Transaction Handling In ADOdb ====== | ||
===== Overview ===== | ===== Overview ===== | ||
- | There are 2 ways of overriding the default transaction handling in ADOdb, **Granular** and **Smart**. Each way holds benefits but they cannot be mixed. Each method comprises a series of methods. | + | There are 2 ways of overriding the default |
* Granular transactions allow full control of individual commits | * Granular transactions allow full control of individual commits | ||
Line 11: | Line 11: | ||
<WRAP right info 300px> | <WRAP right info 300px> | ||
MySQL myIsam tables are always granular, and ignore any transaction control methods coded. You cannot rollback or fail an update into that table type. Use InnoDB table types instead. | MySQL myIsam tables are always granular, and ignore any transaction control methods coded. You cannot rollback or fail an update into that table type. Use InnoDB table types instead. | ||
+ | |||
+ | This also applies to any sequences that might have been updated in the transaction, | ||
</ | </ | ||
If ADOdb transaction handling is not used, then the transaction handling method is controlled by whatever is set by the database. Possible methods are: | If ADOdb transaction handling is not used, then the transaction handling method is controlled by whatever is set by the database. Possible methods are: | ||
Line 23: | Line 25: | ||
<WRAP right box> | <WRAP right box> | ||
== Available Methods == | == Available Methods == | ||
- | [[v5: | + | [[v5: |
- | [[v5: | + | [[v5: |
- | [[v5: | + | [[v5: |
+ | == See Also == | ||
+ | [[v5: | ||
+ | [[v5: | ||
</ | </ | ||
When using granular transactions, | When using granular transactions, | ||
Line 66: | Line 71: | ||
<WRAP right box> | <WRAP right box> | ||
== Available Methods == | == Available Methods == | ||
- | [[v5: | + | [[v5: |
- | [[v5: | + | [[v5: |
- | [[v5: | + | [[v5: |
- | [[v5: | + | [[v5: |
+ | == See Also == | ||
+ | [[v5: | ||
+ | [[v5: | ||
</ | </ | ||
- | Smart Transactions are much easier to use in large procedures because you do not have to track the error status. You start a smart transaction by calling | + | Smart Transactions are much easier to use in large procedures because you do not have to track the error status. You start a smart transaction by calling |
<code php> | <code php> | ||
Line 82: | Line 90: | ||
* Execute some SQL | * Execute some SQL | ||
*/ | */ | ||
- | $conn->Execute($sql); | + | $conn->execute($sql); |
/* | /* | ||
* Execute some more SQL | * Execute some more SQL | ||
*/ | */ | ||
- | $conn->Execute($sql2); | + | $conn->execute($sql2); |
/* | /* | ||
Line 105: | Line 113: | ||
$conn-> | $conn-> | ||
- | if (!CheckRecords()) | + | if (!checkRecords()) |
$conn-> | $conn-> | ||
Line 112: | Line 120: | ||
* it will also be rolled back | * it will also be rolled back | ||
*/ | */ | ||
- | $conn->Execute($sql2); | + | $conn->execute($sql2); |
- | $conn->CompleteTrans(); | + | $conn->completeTrans(); |
</ | </ | ||
- | You can also check if a transaction has failed, using [[v5: | + | You can also check if a transaction has failed, using [[v5: |
- | * if [[v5: | + | * if [[v5: |
- | * There was an error in the SQL execution. | + | * There was an error in the SQL execution. This execution comprises all scenarios where the SQL statement was successfully issued, but failed to complete. This does not include scenarios where the construction of the statement failed, and an error occurred that was trapped by PHP error handling. |
- | Make sure you call '' | + | Make sure you call '' |
Line 140: | Line 148: | ||
*/ | */ | ||
$conn-> | $conn-> | ||
- | if (!CheckRecords()) | + | if (!checkRecords()) |
/* | /* | ||
* This is applied to the outer block | * This is applied to the outer block | ||
Line 159: | Line 167: | ||
==== Savepoints ==== | ==== Savepoints ==== | ||
Savepoints are currently not supported. | Savepoints are currently not supported. | ||
- |
v5/userguide/transactions.txt · Last modified: 2020/08/26 10:09 by dregad