你键的表没有设置数据库引擎为InnoDB类型,设置数据库引擎:alter table 表名 engine=InnoDB;MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行速度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据
if中输入的$res是判断$res是否为真,$res=$mysqli->query($sql)是执行$sql的内容并将执行结果赋值给$res
如下图
在php中每个sql语句就相当于一个事物,因此你提交表单就会执行sql语句。但是像做转账功能的时候,比如我转给你100,你的账户里要收到我的100才算转账成功。如果单单我的账户扣了100,你的账户没有收到100那么这个转账就不成功。所有就判断两个update同时为真的时候就才执行sql语句 就是commit();否则不成功的话就rollback回滚
这个适合有点基础的
你的代码中第10行第二个money写错了
不需要!
所谓回滚就是回到本次操作之前的状态,无论当前代码执行多少条sql语句,或者有多少成功或失败,一律回滚。
myisam可不支持这个事务处理等高级处理,它强调的是性能
事务只有INNODB引擎支持,你看看你的引擎
^-^...