是否可以使用php执行mysql数据库事务和回滚?
示例:从用户a向用户B进行付款转账。 用户A账户:-10美元 用户B账户:+10美元 如果有一个事务,并且出现了一些问题,那么所有的事情都会被撤销。因此,对于事务,用户A的帐户不会减少10,而用户B的帐户不会增加10 我知道java人到处使用事务和回滚。但我从来没有听说过PHP的人这么做是否可以使用php执行mysql数据库事务和回滚?,php,mysql,transactions,Php,Mysql,Transactions,示例:从用户a向用户B进行付款转账。 用户A账户:-10美元 用户B账户:+10美元 如果有一个事务,并且出现了一些问题,那么所有的事情都会被撤销。因此,对于事务,用户A的帐户不会减少10,而用户B的帐户不会增加10 我知道java人到处使用事务和回滚。但我从来没有听说过PHP的人这么做 $db = new mysqli("localhost", "", "", ""); $db->autocommit(FALSE); if ($db->query("INSERT ..."))
$db = new mysqli("localhost", "", "", "");
$db->autocommit(FALSE);
if ($db->query("INSERT ..."))
$db->commit();
else
$db->rollback();
确保您的表使用InnoDB
引擎:MyISAM
不支持事务
评论更新:
InnoDB
是MySQL
使用的两个主要存储引擎之一,另一个是MyISAM
默认情况下,MySQL
附带了InnoDB
支持编译,事实上禁用它需要一些努力
我从来没有听说过MySQL被最便宜的主机禁用了
InnoDB
。如果你使用pdo,它也有事务支持
如前所述,确保使用innoDB存储引擎。线程安全吗?如果20个用户在几乎相同的时间开始工作,那么多个线程在几乎相同的时间做类似的事情呢?@谢谢:我想最基本的例子是他们排队。数据库被设计来处理这样的事情,20个用户几乎同时启动事务应该是完全可以忽略的。你需要一个自己的innoDB服务器,因为没有便宜的主机拥有它,对吗?