0

我在 phpmyadmin 中使用这个查询并且工作完美

UPDATE TABLE SET DETALLE = 'PENDING FOR TODAY' where DATE(FECHA) = DATE(NOW());

但如果我从 PHP 做同样的事情

$sql= "UPDATE TABLE SET DETALLE = 'PENDING FOR TODAY' 
where DATE(FECHA) = DATE(NOW())
$resultado = mysql_query($sql) or die ("error");

如果 php 中的 DATE() 有任何问题,没有做任何事情?

4

1 回答 1

5

您错过了";代码行末尾的 。
此外,您可以使用curdate()代替date(now())

$sql = "UPDATE TABLE 
        SET DETALLE = 'PENDING FOR TODAY' 
        WHERE DATE(FECHA) = CURDATE()";

如果您有性能问题,您可以将其更改为

$sql = "UPDATE TABLE 
        SET DETALLE = 'PENDING FOR TODAY' 
        WHERE FECHA >= CURDATE() AND FECHA < CURDATE() + interval 1 day";

如果你有一个,它会使用索引FECHA

并且请不要在新代码中使用 mysql_* 函数。它们不再被维护并被正式弃用。改为了解Prepared Statements,并使用PDOMySQLi。请参阅本文以快速概述如何执行此操作以及它为何如此重要。

于 2013-07-18T17:29:14.403 回答