存储php整数数组

时间:2013-06-29 23:26:24

标签: sql arrays serialization

我需要存储一组int。现在我的问题是,有一个操作已经完成了很多次,所以我想将它限制为一个查询。在tha查询中,我需要从数组中的某个int添加一个int。

这是在特定页面上花费的时间的计时器。目前它只是一个通用计数器,它计算同一领域中的所有页面,所以我只需要做

UPDATE user SET active = active+$totaltime WHERE id=:id

$ totaltime是上次检查之间的时差。现在我想单独存储某些页面。问题是我不确切知道会有多少页面。我考虑过使用serialize,但后来我需要多次进行2次查询,这似乎不是一个好的解决方案。

还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

您需要的是一个单独的级别表,用于跟踪每个级别上与每个用户相关的活动时间。

让我们调用此表 userlevels ,并为其提供以下列:

userid INT
levelid INT
active INT

主键应该是 userid leveid 列的组合,因为用户和级别的特定组合只能有一个条目。

然后,当您想要更新用户在特定级别上花费的时间时,您会执行以下操作:

INSERT INTO userlevels (userid,levelid,active)
VALUES (:userid,:levelid,$totaltime)
ON DUPLICATE KEY UPDATE active=active+$totaltime;

如果用户以前从未在该级别上,则会在表中创建一个新条目,如果已​​有条目,则会在活动时间内添加。

这是特定于mysql的语法,但在具有不同调用的其他数据库上可以实现相同的功能。