Is it possible to do mysql database transactions and rollbacks with php?
https://stackoverflow.com/questions/934254
Question
example: making a payment transfer from user A to user B. Account of user A: -10 USD Account of user B: +10 USD
if there is an transaction, and something goes wrong, everything gets undone. So with transactions it will not happen that account of user A gets decreased by 10, while account of user B does not get increased by 10.
I know the java people make use of transactions and rollbacks all over the place. But I've never heard of PHP-guys doing that.
No correct solution
OTHER TIPS
$db = new mysqli("localhost", "", "", "");
$db->autocommit(FALSE);
if ($db->query("INSERT ..."))
$db->commit();
else
$db->rollback();
Make sure your tables use InnoDB
engine: MyISAM
does not support transactions.
Comment update:
InnoDB
is one of two major storage engines used by MySQL
, the other one being MyISAM
.
MySQL
comes with InnoDB
support compiled in by default and in fact it takes some effort to disable it.
I've never heard of MySQL
with InnoDB
disabled even by cheapest of the hosters.
If you use pdo, it also has transaction support
http://us2.php.net/manual/en/pdo.begintransaction.php
like was already said, make sure you use the innoDB storage engine.