用于检查当前日期的php代码比数据库中的日期更新

时间:2013-10-06 10:40:24

标签: php mysql web

我开发了一个使用php和mysql的webSite,我真的是这个领域的初学者..现在iam陷入了一个我必须检查当前日期比我数据库中的日期更新的地方

所以我写了这样的代码,但它没有用

$SQL = "UPDATE adverts SET active='0' WHERE enddate<NOW()";
$result = mysqli_query($con,$SQL);

在上面的代码'advert'中是我的表名,'enddate'是包含数据库中日期的列的位置

任何人都可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

正如Anthony在评论中所述,最好通过转到PHPMyAdmin - &gt;来检查您的查询是否在PHPMyAdmin中有效。 SQL - &gt; Run Query。通过这种方式,您可以区分它是 MySQL错误还是 PHP错误

 UPDATE adverts SET active = 0 WHERE ( enddate < NOW() ) 

我已将有效'0'设置为0,因为我认为它将是Integer字段 - 其次,您的enddate中存在一个小而重要的区别:

date字段还是datetime字段?见下文:

SELECT NOW(); // You will get 2010-12-09 17:10:18
SELECT CURDATE(); // You will get 2010-12-09

来源:MySQL Curdate() vs now()

您可以使用affected_rows()查看您的查询是否有效,但只是不符合任何条件

$sql = "UPDATE adverts SET active = 0 WHERE ( enddate < NOW() )";
$queried = mysqli_query( $con, $sql );
if ( mysqli_affected_rows( $con ) >= 1 ) {
     //We know some rows were effected.
}

答案 1 :(得分:-1)

你试过吗

UPDATE adverts SET active='0' WHERE enddate<DATE(NOW()) 

另外,它是广告还是广告?

或者您可以尝试使用CURDATE()

UPDATE adverts SET active='0' WHERE enddate<CURDATE()