$datesql='UPDATE products set past=1 where " '.$row['valid_date'].' " > CURDATE()';
mysql_query($datesql);
上述查询有什么问题?它没有检查条件就将“过去”设置为1。我怎样才能改进这个代码?PHP日期验证和比较
$datesql='UPDATE products set past=1 where " '.$row['valid_date'].' " > CURDATE()';
mysql_query($datesql);
上述查询有什么问题?它没有检查条件就将“过去”设置为1。我怎样才能改进这个代码?PHP日期验证和比较
没有足够的信息。什么样的数据存储$ row ['valid_date']?时间戳?
无论如何,不知道你想得到什么,但通常如果值大于CURDATE(),它将是过去= 0。
,那么正确的方法是:
'UPDATE products set past=1 where " '.$row['valid_date'].' " < CURDATE()';
我的意思是,如果该日期比当前,更是在未来,所以通常将成为过去= 0,否则会过去,所以过去= 1
但是,正如约定,可能是你使用的是不同的。
还有一个非常重要的题外话注:请求mysql_query()在PHP 7
这不是一个答案,这是一个评论,应该写成一个。 –
也许你是对的,我的假设答案(由于缺乏信息)是:你是这样做的。 (只是添加它作为答案) –
辗转试试这个,
$var1=$row["valid_date"];
$datesql="UPDATE `products` set `past`=1 where $var1 > CURDATE()";
$res=mysql_query($datesql);
希望这将解决您的问题。
试试这个,
$datesql="UPDATE products set past=1 where ".$row['valid_date']." > CURDATE()";
mysql_query($datesql);
我认为这应该工作当且仅当$行[ 'valid_date']是表中列的名称。
如果不是一次,请回显您的查询,然后尝试在您的mysql浏览器上执行。
如果你的列是日期时间或日期,下面的代码可以帮助你
$datesql='UPDATE products set past=1 where '.$row['valid_date'].' > CURDATE()';
是什么$行[ 'valid_date']? 。列名或值?它应该是列名 –
从表'产品'我想比较当前日期的数组变量。 – SUNIL
是的,它是一个列名称 – SUNIL