iam 使用 php 和 mysql 开发一个网站,我在这个领域确实是初学者。现在我陷入了一个必须检查当前日期是否比数据库中的日期更新的地方
所以我写了这样的代码,但它不起作用
$SQL = "UPDATE adverts SET active='0' WHERE enddate<NOW()";
$result = mysqli_query($con,$SQL);
在上面的代码中,“advert”是我的表名称,“enddate”是数据库中包含日期的列
有人可以帮我吗?
最佳答案
正如安东尼在评论中所述,最好检查您的查询是否在 PHPMyAdmin
中工作。无论如何,请访问 PHPMyAdmin
-> SQL
-> Run Query
。这样您就可以区分是MySQL 错误还是PHP 错误。
UPDATE adverts SET active = 0 WHERE ( enddate < NOW() )
我已将事件“0”设置为 0,只是因为我相信它将是 Integer
字段 - 其次,您的 enddate
有一个微小但重要的差异:
是date
吗?字段或 datetime
field ?见下文:
SELECT NOW(); // You will get 2010-12-09 17:10:18
SELECT CURDATE(); // You will get 2010-12-09
您可以使用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.
}
关于用于检查当前日期是否比数据库中的日期新的php代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19207902/