我看文档中有两种实现事物的方法,一种是:
$link->autocommit( FALSE );//关闭自动提交
$link->query( 'sql...' );
$link->query( 'sql...' );
...
$link->commit()
一种是:
$link->begin_transaction();//显示声明开始事物
$link->query( 'sql...' );
$link->query( 'sql...' );
...
$link->commit();
这两种实现的方法有什么异同吗?
事务举例:用户1支付50元购买了商品2
注意,MySQL InnoDB引擎会把单条写操作(insert/update/delete,create/alter/drop等)当做事务来处理并自动提交.所以上面需要先关闭自动提交,这样才可以手动提交多条语句.需要注意的是,手动提交事务后记得设置回自动提交,否则后面的写操作因为没有手动提交会导致自动回滚.