2

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

$query = "更新用户 SET num_logins = num_logins+1, last_login='$timeStamp' WHERE id = $id";

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

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

引擎=InnoDB。

4

1 回答 1

1

需要考虑的一些场景:

  1. 您确定 $id 在更新查询中正确匹配吗?也许记录没有被更新。
  2. 您确定 num_logins 的所有值都不为空吗?该列是否可以为空?默认值可能为 0,但您应该检查以确保没有任何空值。请记住,null + any 始终为 null。
  3. 您确定查询实际上是在您的代码中执行的吗?您可以添加一些工具(例如日志记录)来确保这一点吗?也许查询并未在所有情况下都运行。
于 2012-04-19T19:48:59.830 回答