redbeanphp:如何使用mysql更新时间戳

redbeanphp:如何使用mysql更新时间戳,php,mysql,last-modified,redbean,Php,Mysql,Last Modified,Redbean,我需要mysql在每次更新时自动更新一个字段。我将字段创建为: `lastModified` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, 但问题是,当我使用R::store更新记录时,lastModified不会自动更新,而是设置为最后一个设置值。请注意,我的代码没有设置字段。基本上,通过findOne和store来设置任何其他字段都应该更新时间戳,但看起来redbeans正在读取整行(因此lastUpdated被填写

我需要mysql在每次更新时自动更新一个字段。我将字段创建为:

   `lastModified` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,

但问题是,当我使用R::store更新记录时,lastModified不会自动更新,而是设置为最后一个设置值。请注意,我的代码没有设置字段。基本上,通过findOne和store来设置任何其他字段都应该更新时间戳,但看起来redbeans正在读取整行(因此lastUpdated被填写为old time),并假设在我存储时,它认为我正在将其设置为old time值

lastModified
属性是纯MYSQL。它不取决于执行情况

RedbeanPHP也会更新mysql数据库,您是否已禁用此功能

R::freeze( TRUE );
一旦将其冻结,您可以自己修改数据库和表,redbean将不会更新它。这还应该考虑
lastModified
属性。

试试这个

$bean->lastModified = date('Y-m-d G:i:s');
R::store($bean);

但它仍将读取旧值并将其写回。正确的?这会让mysql认为我正在尝试设置新值并使用它,而不是使用当前的时间戳。我现在有了一个解决方法,在redbeans中,我排除了某些字段的更新,您可以发布一些简单的代码来演示错误。我使用redbeanPHP,所以它很容易检查。我建议详细说明这个答案。这似乎没有回答OPs关于“时间戳为什么不自动更新”的问题。对不起,我的简短回答是,redbean似乎只更新bean中已更改的字段,因此如果设置为
lastModified
timestamp NOT NULL,则在数据库中更新当前时间戳时默认为NULL,将bean属性设置为null或当前时间以进行数据更改