gpt4 book ai didi

php - MySQL 回滚 PHP(不是 MySQL)错误

转载 作者:行者123 更新时间:2023-11-29 21:15:38 25 4
gpt4 key购买 nike

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

我已经完成了封闭用户测试版的一半,其中有许多恐怖和比瑞士奶酪更多的安全漏洞。这只是一个概念验证,看看是否有人感兴趣。它最终将由知道自己在做什么的人正确编码。 (目前只有我一个人看到。)

我遇到了一个新问题。一切都很顺利,但有时如果我遇到 PHP 错误,错误的数据会被写入数据库,这会在稍后读取数据时导致问题。这是完全有效的数据,因此数据库不会抛出错误,但我想崩溃并修复它,而不需要任何数据保留在数据库中,直到 PHP 被修复。

我还没有使用过 beginTransaction commit rollback (我在 PDO 上有点挣扎),但这似乎是正确的区域问题。

所以....

有没有办法将 beginTransaction 放在相当繁忙的“处理”文件的开头,然后在末尾执行 commit 并使其在PHP 失败?

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

感谢任何指针在任何地方都找不到此信息。我知道如果有办法做到这一点,就会有很多答案,但如果是这样,我一定使用了错误的搜索字符串。

编辑: PS 我应该说 PHP 警告和错误。我的大多数问题都与警告相关,所以我最终在数据库中存储了 0,而它应该是 150,因为变量由于拼写错误而被错误命名 - 诸如此类的事情。

最佳答案

Is there a way of putting a beginTransaction at the start of a fairly busy "processing" file and then do a commit at the end and have it fail on a PHP fail?

是的。

如果您希望事务因任何 PHP 错误而失败,那么只需创建一个简单的错误处理程序,例如 here并将数据库内容放在开始和提交之间。

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

关于php - MySQL 回滚 PHP(不是 MySQL)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35970943/

25 4 0