MySql删除操作将datetime与当前日期时间进行比较

时间:2012-12-14 01:33:50

标签: php mysql datetime sql-delete

我是PHP和MySql的新手。我想从表中删除order_before传递当前日期和时间的行。 order_before是日期/时间类型。

2 个答案:

答案 0 :(得分:2)

<?php
$db = new PDO('mysql:host=localhost;dbname=db','root','root');

if(filter_has_var(INPUT_POST, 'submit')) {
  $now = date("Y-m-d H:i:s");
  $r = $db->query("SELECT * FROM db WHERE datetime < '".$now."'");
  $n = $r->rowCount();
  if ($n){
    while($o = $r->fetchObject()) {
      $db->query('DELETE FROM db WHERE id = '.$o->id);
    }
  }
}

也许像上面这样的东西? (未经测试,并且从顶部开始)。

答案 1 :(得分:1)

只需在声明中添加条件,应该很容易:

$sql = sprintf("DELETE FROM mytable WHERE order_before > '%s'", date('Y-m-d H:i:s'));
$db->exec($sql);