PHP / MySQL查询没有执行

时间:2015-12-22 22:21:37

标签: php mysql

我试图在PHP中执行两个查询。由于我不知道的原因,只执行1个查询而另一个不执行。如果我尝试运行以下命令,则第一次更新有效,但第二次查询没有。如果我评论第一个查询并运行它,第二次更新工作正常。任何想法为什么会这样?

$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);

谢谢。

1 个答案:

答案 0 :(得分:0)

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