基本上,我插入到关系型MySQL数据库使用MYISAM排序规则与PHP。例如,如果用户填写了Web表单并将其张贴以供插入,则它们提供的所有数据可能都属于多个表格的一部分。mysql撤消查询或功能
所以使用PHP,我会值插入到一个表,然后到另一个,然后到另一个,等等等等......
但说我3把插入大量的数据为3个表,但在第4插入... sql失败...然后我需要向用户返回一条错误消息,但是也必须撤消所有最后一个插入。
我可以简单地只删除失败的所有过去的刀片...
不过,我想知道是否有更简单的方法?
以某种方式将sql查询提供给临时存储数据和SQL的mysql引擎,并在命令上运行所有语句?
任何想法?
MyISAM不支持交易,数据库将不得不转换为InnoDB或类似。但我同意,这是解决方案。 – 2012-03-21 09:40:26
真的吗?哇,这很糟糕......我使用InnoDB进行行级锁定是件好事:D我将用该信息编辑我的答案。 – 2012-03-21 09:44:34
所以在我使用
mysql_query("start transaction");
之后,所有的php mysql_ *函数都能正常工作,直到我使用mysql_query("commit");
? – 2012-03-21 09:45:43