Php mysql撤消查询或函数
基本上,我使用php的MYISAM排序规则插入到关系MySQL数据库中 假设一个用户填写一个web表单并发布它以供插入,那么他们提供的所有数据可能属于多个表的一部分 所以我将使用php将值插入一个表,然后插入另一个表,然后插入另一个表,等等 但是假设我在3个表中插入3个数据,但是在第4个插入。。。sql失败了。。。然后,我需要向用户返回一条错误消息,但我还必须撤消所有最后的插入 我可以简单地删除所有过去的插入失败 但是我想知道是否有更简单的方法 以某种方式将sql查询提供给mysql引擎,mysql引擎临时存储数据和sql,并在命令下运行所有语句 有什么想法吗?首先:Php mysql撤消查询或函数,php,mysql,Php,Mysql,基本上,我使用php的MYISAM排序规则插入到关系MySQL数据库中 假设一个用户填写一个web表单并发布它以供插入,那么他们提供的所有数据可能属于多个表的一部分 所以我将使用php将值插入一个表,然后插入另一个表,然后插入另一个表,等等 但是假设我在3个表中插入3个数据,但是在第4个插入。。。sql失败了。。。然后,我需要向用户返回一条错误消息,但我还必须撤消所有最后的插入 我可以简单地删除所有过去的插入失败 但是我想知道是否有更简单的方法 以某种方式将sql查询提供给mysql引擎,mys
mysql_query("start transaction");
然后,如果您的所有插入都成功工作:
mysql_query("commit");
否则,如果某个地方出现故障
mysql_query("rollback");
我喜欢这个功能
编辑(在评论中指出的以下要点):这只在支持事务的数据库引擎中起作用,MyISAM不是其中之一。我强烈推荐InnoDB,因为它支持行级锁定,使您的查询不太可能遇到锁定。首先:
mysql_query("start transaction");
然后,如果您的所有插入都成功工作:
mysql_query("commit");
否则,如果某个地方出现故障
mysql_query("rollback");
我喜欢这个功能
编辑(在评论中指出的以下要点):这只在支持事务的数据库引擎中起作用,MyISAM不是其中之一。我强烈推荐InnoDB,因为它支持行级锁定,使您的查询不太可能遇到锁定。希望这对您有所帮助:
希望这对您有所帮助:
尝试使用SET AUTOCOMMIT=0禁用自动提交 另外,您必须使用支持InnoDB表的最新MySQL版本 请注意,在执行此操作时,您需要始终使用提交来保存更改
START TRANSACTION;
UPDATE table SET summmary='whatever' WHERE type=1;
COMMIT;
PHP确实支持事务,对每个命令使用单独的查询语句
mysql_query("BEGIN");
mysql_query("COMMIT");
mysql_query("ROLLBACK");
尝试使用SET AUTOCOMMIT=0禁用自动提交 另外,您必须使用支持InnoDB表的最新MySQL版本 请注意,在执行此操作时,您需要始终使用提交来保存更改
START TRANSACTION;
UPDATE table SET summmary='whatever' WHERE type=1;
COMMIT;
PHP确实支持事务,对每个命令使用单独的查询语句
mysql_query("BEGIN");
mysql_query("COMMIT");
mysql_query("ROLLBACK");
朋友,,
如果要在任何失败步骤后执行回滚,则不能使用MYISAM存储引擎。。。如果您可以使用InnoDB作为mysql存储引擎,那么我可以回答您在这里提出的问题。。。不仅如此,我可以告诉你你必须用php写什么,对于mysql,并可以分享一些示例代码,这些代码将明确你的概念,然后你会很容易。。。但首先,您必须向我确认,您是否可以将表存储引擎更改为InnoDB。。。??如果你想改变,但不知道如何才能改变你的存储引擎,那么你应该随时问我。。。我会尽我最大的努力
如果你想问我任何问题,只需编辑此答案并在最后添加你的问题。。。甚至你也可以添加评论。。。
祝你好运朋友…朋友,
如果要在任何失败步骤后执行回滚,则不能使用MYISAM存储引擎。。。如果您可以使用InnoDB作为mysql存储引擎,那么我可以回答您在这里提出的问题。。。不仅如此,我可以告诉你你必须用php写什么,对于mysql,并可以分享一些示例代码,这些代码将明确你的概念,然后你会很容易。。。但首先,您必须向我确认,您是否可以将表存储引擎更改为InnoDB。。。??如果你想改变,但不知道如何才能改变你的存储引擎,那么你应该随时问我。。。我会尽我最大的努力
如果你想问我任何问题,只需编辑此答案并在最后添加你的问题。。。甚至你也可以添加评论。。。
祝你好运friend…MyISAM不支持事务,数据库必须转换为InnoDB或类似版本。但我同意,这是解决办法。真的吗?哇,太糟糕了。。。好消息是,我使用InnoDB进行行级锁定:D我将使用该信息编辑我的答案代码>所有php mysql_*函数都将正常工作,直到我使用
mysql_查询(“提交”)代码>?差不多就是这样。MyISAM不支持事务,数据库必须转换为InnoDB或类似的数据库。但我同意,这是解决办法。真的吗?哇,太糟糕了。。。好消息是,我使用InnoDB进行行级锁定:D我将使用该信息编辑我的答案代码>所有php mysql_*函数都将正常工作,直到我使用mysql_查询(“提交”)代码>?差不多就是这样。内部不是很“正常”,但外部是这样。有一个类似的帖子和你的一样。。。有一个类似于你的帖子。。。