2015-12-22 186 views
0

我试图用PHP执行两个查询。由于我不知道的原因,只有一个查询会执行,另一个不会。如果我尝试运行以下内容,则第一次更新将起作用,但第二次查询不会。如果我评论第一个查询并运行这个,第二个更新工作得很好。任何想法为什么发生这种情况?PHP/MySQL查询未执行

$sql = "update " . $_POST["table"] . "_dtl 
     set cd_eff_end_ts = DATE_SUB('" . $_POST["CD_EFF_STRT_TS"] . "', INTERVAL 1 SECOND) 
     where " . $_POST["pk"] . " = '" . $_POST[$_POST["pk"]] . "' 
      and cd_eff_end_ts = '3500-12-31 23:59:59' 
      and idw_cd_lfcyc_stat_typ_cd in ('RAP', 'RAM')"; 
$conn->query($sql); 

$sql = "update " . $_POST["table"] . "_dtl 
     set rec_eff_strt_ts = current_timestamp, 
      rec_eff_end_ts = '3500-12-31 23:59:59', 
      idw_cd_lfcyc_stat_typ_cd = '" . $status ."', 
      idw_lfcyc_stat_ts = current_timestamp, 
      lfcyc_stat_decreed_by_user_id = " . $user . ", 
      idw_lfcyc_stat_rtnle_txt = '" . $_POST["IDW_LFCYC_STAT_RTNLE_TXT"] . "' 
     where rqst_nbr = " . $_POST["rqst_nbr"]; 
$conn->query($sql); 

谢谢。

+2

'echo $ conn-> error;'请在查询失败后向我们展示输出结果。 – Matt

+2

请学习使用准备好的查询,而不是将变量替换为字符串。 – Barmar

+1

我很抱歉,但我真的不认为这里有足够的信息来弄清楚为什么你说的事情正在发生。如果任何一个查询都存在固有问题,则它将无法工作。事实上,任何人都可以在没有其他人的情况下工作,这让我认为这个问题是我们在这里看不到的。 –

回答

0

感谢上面的意见,我意识到有重复的密钥。不应该有重复键,因为它是代码和加载时间戳的组合键。有人将加载时间戳设置为更新时的当前时间戳,这会导致重复密钥。删除更新修复了它。