是否有可能,在我的 PHP 5.4.0 应用程序(IIS、FastCGI、非线程安全)中,两个人通过在完全相同的时间运行相同的代码来更新数据库中的同一个表,并且无意中弄乱了彼此的表数据?
我问的原因是因为我偶尔会看到无法解释的数据故障,在最近的案例中,我发现另一位客户恰好在同一时间更新了同一张表。
我的问题的第二部分是,如果这确实发生了,我该如何预防?
最佳答案
如果您在不使用事务的情况下在每个请求中执行多个 SQL 语句,那么这是很有可能的。 SQL 语句是原子的,就像事务包装的语句序列一样,因此不应出现“故障”。
此外,如果您在 SQL 以外的任何地方(例如平面文件)之间的不同请求之间共享状态,显然线程安全至少会受到损害。
第二部分:使用事务:)
关于php - 线程安全是 PHP 5.4 中的一个真正问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13714267/