MySQL将一个添加到数字列

时间:2012-04-19 19:44:23

标签: php mysql

在我的PHP代码中,我有以下SQL语句:

$ query =“UPDATE用户SET num_logins = num_logins + 1,last_login ='$ timeStamp'WHERE id = $ id”;

我最近为项目管理员实现了num_logins列,以便他可以看到频繁用户是谁。看起来它大部分时间都在工作,但是,我注意到有两个用户在last_login字段中有num_logins = 0且时间戳值落在我实现更改的日期之后。

num_logins列的默认值为零,因此如果他们成功登录,并且上述查询是唯一更新其last_login字段的查询,那么当他们的last_login字段更新时,num_logins如何仍然为零(两个字段都不是在代码中的任何其他地方得到更新,我是唯一的数据库管理员)?

ENGINE = InnoDB的。

1 个答案:

答案 0 :(得分:1)

需要考虑的一些方案:

  1. 您确定$ id在更新查询中是否正确匹配?也许记录没有更新。
  2. 您确定num_logins的所有值都不为空吗?该列可以为空吗?默认值可能为0,但您应检查以确保没有任何空值。记住,null +任何东西都是null。
  3. 您确定查询实际上是在代码中执行的吗?您可以添加一些仪器(例如日志记录)来确保这一点吗?可能在所有情况下都没有运行查询。