php - InnoDB 有时会更新和插入丢失的数据(PHP 和 MySQL)

标签 php mysql innodb

我们需要更新主表和子表(table_1 和 table_2)中的一些列,两个表都在 InnoDB 引擎中,实际上它更新正确,但有时在任何一个表中都没有发生更新操作。

我们已经检查了查询执行状态并尝试检查 MySQL 负载,当时我们无法找到任何解决方案,请调查并尝试为我们提供更好的解决方案,如果您需要进一步的信息,请更新我们来 self 们的信息。

注意 1:据我们研究,InnoDB 具有行级锁定,因此它不会影响其他行插入或更新功能,您能否建议我们在什么情况下 InnoDB 无法响应或任何其他编码方面的建议或其他任何可能,等待你的答复。

注意 2:我们使用单独的连接字符串来使用 PDO 进行读写连接。

我已经在下面编写了我的代码供您引用。

$Update_CCPI_qy = "UPDATE `table_1` SET `status` = :status, `idActivateTime` = :currentTime WHERE `student_id` = :candidateID";

$Update_CCPI_exec = $pdo_connection_write->prepare($Update_CCPI_qy);
$Update_CCPI_status = $Update_CCPI_exec->execute(array( ':candidateID' => $candidateID, ':status' => 1, ':currentTime' => time()));

$Update_candidateIDNo_qy = "UPDATE `table_2` SET `status` = :status, `idActivateTime` = :currentTime WHERE `candidateid` = :candidateID";
$Update_candidateIDNo_exec = $pdo_connection_write->prepare($Update_candidateIDNo_qy);
$Update_candidateIDNo_status = $Update_candidateIDNo_exec->execute(array( ':candidateID' => $candidateID, ':status' => 1, ':currentTime' => time()));

最佳答案

我自己声明,经过长时间的讨论、研究和分析后,我发现 innodb 在该表死锁之前的某个阶段不一致,因此 innodb 可以设法不进入死锁,但在某个级别它有时会变得不一致,这意味着它无法正确显示结果,并且当时可能无法插入或更新。 就我的知识而言,我找到了这个解决方案,请专家审查或确认我的答案。

关于php - InnoDB 有时会更新和插入丢失的数据(PHP 和 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39508315/

相关文章:

php - 转换用于 MySQL FULLTEXT bool 模式的多词搜索字符串

php - 从根文件夹 laravel 之外的文件夹访问文件

php - 尝试使用一个查询对两个不同的数据库表进行两次插入

php - 为什么我的模型中的值没有在数据库中更新?

python - MySQL 控制台运行查询,Python 不运行

mysql - 尝试导入数据库时​​程序中断

php - 在 View 中渲染数据时出现"Undefined variable"错误

mysql - 从表单提交中提取日期参数时遇到问题

mysql - MySQL 中快速非规范化 View ,如何实现?

Mysql大数据表查询