PHP日期验证和比较

时间:2017-02-02 06:49:04

标签: php validation date

$datesql='UPDATE products set past=1 where " '.$row['valid_date'].' " > CURDATE()';
mysql_query($datesql);

上述查询有什么问题?它创造了过去的“过去”。到1而不检查条件。如何改进此代码?

4 个答案:

答案 0 :(得分:0)

信息不足。什么样的数据存储$ row [' valid_date']?时间戳?

无论如何,不​​确定你想要得到什么,但通常如果值是>比CURDATE(),它将过去= 0.

然后正确的方法是:

'UPDATE products set past=1 where " '.$row['valid_date'].' " < CURDATE()';

我的意思是,如果日期超过当前日期,那么它将来会是,所以通常会过去= 0,否则就会过去,所以过去= 1

但是,正如惯例一样,你可能正在使用不同的。

另一个非常重要的主题说明:在PHP 7中删除了mysql_query()

答案 1 :(得分:0)

试试这个,

$var1=$row["valid_date"];
$datesql="UPDATE `products` set `past`=1 where $var1 > CURDATE()";          
$res=mysql_query($datesql);

希望这能解决您的问题。

答案 2 :(得分:0)

试试这个,

$datesql="UPDATE products set past=1 where ".$row['valid_date']." > CURDATE()";
mysql_query($datesql);

我认为这应该有效iff $ row ['valid_date']是表中列的名称。

如果不是一次,请回显您的查询,然后尝试在您的mysql浏览器上执行。

答案 3 :(得分:0)

如果您的列是日期时间或日期,则下面的代码可能会帮助您

 $datesql='UPDATE products set past=1 where '.$row['valid_date'].' > CURDATE()';