2016-09-15 83 views
1

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

我们已经检查了查询执行状态,并试图在当时检查MySQL负载,我们无法找到任何解决方案,请仔细研究并尝试给我们提供更好的解决方案,如果您想要更新我们来自我们的更多信息。注意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())); 
+0

你看过日志文件中的错误吗?为什么你有两个表格显然是完全相同的列? – e4c5

+0

相同的字段用于某些目的,这对我的项目是强制性的。而且我无法找到时间问题实际发生时,所以我无法在特定时间读取日志文件 – Naveen

回答

0

我本人声明,经过长时间的讨论,研究和分析的地方,我发现InnoDB的是不是这只是表的死锁之前谈到某个阶段相一致,以便InnoDB的可管理别跟死了锁,但在某种程度上它变得不一致,这意味着它不能正确显示结果,并且在那个时候它可能不会插入或更新。 据我所知,我找到了这个解决方案,请专家审查或确认我的答案。