检查帖子是否15分钟

时间:2014-03-02 19:43:37

标签: php mysql datetime comparison

所以我有一个很大的问题需要解决,研究似乎还没有帮助我。如果帖子是在15分钟前发布的,我想更改MySQL表格行。我怎么能这样做?

这是我尝试过的:

$query_set_invisible = "UPDATE scrims SET available='1' WHERE time < DATE_SUB(NOW(),INTERVAL 15 MINUTE)";

if($stmt = $mysqli->prepare($query_set_invisible)) {
    $stmt->execute();
    $stmt->close();
}

$query_set_invisible = "UPDATE scrims SET available='1' WHERE time > DATE_SUB(NOW(),     INTERVAL -15 MINUTE)";

if($stmt = $mysqli->prepare($query_set_invisible)) {
    $stmt->execute();
    $stmt->close();
}

1 个答案:

答案 0 :(得分:0)

我在这里看到一些问题。

  1. 你隐瞒了API失败。
  2. time是保留字。你可能想逃避它。它应该工作正常,但比抱歉更安全。
  3. 您可能没有提交更新。
  4. 有一种更简单的方式来编写时间表达式。
  5. 你可以试试这个。它会转义时间变量,在每次sql操作后显式检查结果,并提交UPDATE。它还使用更简单的时间表达式。

     $query_set_invisible = "UPDATE scrims 
                                SET available='1' 
                              WHERE `time` > NOW() - INTERVAL 15 MINUTE";
    
     $stmt = $mysqli->prepare($query_set_invisible) 
                           || die "prepare failed: " . $mysqli->error;
     $stmt->execute()      || die "execute failed: " . $stmt->error;
     $mysqli->commit()     || die "commit failed: "  . $mysqli->error;
     $stmt->close()        || die "close failed: "   . $stmt->error;
    

    }