繁体   English   中英

MySQL在PHP(不是MySQL)上回滚错误

[英]MySQL rollback on PHP (not MySQL) error

我已经看过,但在任何地方都看不到该查询。 那可能是因为这是一个愚蠢的问题-我不知道我不知道!

我正在经历封闭用户Beta的一半,它比瑞士奶酪具有更多的恐怖和更多的安全漏洞。 看看是否有人感兴趣只是一个概念证明。 最终将由知道自己在做什么的人正确编码。 (目前只有我看到它。)

我遇到了一个新问题。 一切进展顺利,但是有时如果我遇到PHP错误,则会将错误的数据写入数据库,这会在以后读取数据时引起问题。 它是完全有效的数据,因此DB不会抛出错误,但是我想崩溃并去修复它,而无需修复PHP中的任何数据。

我还没有使用过beginTransaction commit rollback (我在PDO上有些挣扎),但这似乎是解决该问题的正确方法。

所以....

有没有一种方法可以将beginTransaction放在相对繁忙的“处理”文件的开头,然后在结尾进行commit ,并使其在PHP失败时失败?

如果有解决方案,那么我将离开并重做文件,以便可以使用它,否则,对于这个非常不整洁的beta,我将忽略beginTransaction

感谢任何指针无法在任何地方找到此信息。 我知道如果有一种方法可以解决很多问题,但是如果是这样,我肯定使用的是错误的搜索字符串。

编辑: PS我应该说过PHP 警告和错误 我的大多数问题都与警告相关,因此我最终将0存储在数据库中时应设置为150,因为变量由于拼写错误而被错误命名(这种情况)。

有没有一种方法可以将beginTransaction放在相对繁忙的“处理”文件的开头,然后在结尾进行提交,并使其在PHP失败时失败?

是。

如果您希望事务因任何PHP错误而失败,则只需在此处创建一个简单的错误处理程序(如其中一个) 然后将数据库内容放置在begin和commit之间即可。

因此,PHP错误将成为异常,未捕获的异常将是致命错误,致命错误将导致PHP中止,PHP中止将关闭mysql连接,Mysql关闭将回滚所有已执行的查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM