gpt4 book ai didi

php - 不要仅为特定操作更新 "on update CURRENT_TIMESTAMP"

转载 作者:行者123 更新时间:2023-11-29 02:15:27 26 4
gpt4 key购买 nike

在我的网站上,我创建了一个 update_date 列,我在其中自动为每一行存储我更新表格行的日期(每一行都像一个文章页面) .我已使用 on update CURRENT_TIMESTAMP 完成此操作。

问题是我还创建了一个 pageview 列,我在其中存储用户对每个页面所做的所有访问。

我想要的是,当 pageview 列中有新访问时,不要自动更新 update_date。是否有可能通过编写一些 PHP 代码或仅使用 MySQL 查询来获得此信息?

最佳答案

如果您将时间戳字段设置为它的值,它不会设置为当前时间戳,因此您只需将 update_date = update_date 添加到您的查询中即可:

UPDATE articles SET update_date = update_date, pageviews = pageviews + 1 WHERE id = :the_id;

但是由于您实际上是在更新文章,因此 update_date 失去了一点意义。我建议你把访问记录在一个不同的表中,通过外键链接到文章,这样文章时间戳只会在文章内容真正更新时更新,而不仅仅是它的页面访问次数:

例如,它可以是一个表 visits,这里文章 ID #1 有 13 个 View ,文章 #3 有 7 个。文章 #2,不存在,没有 View :

+--+----------+--------+
|id|article_id|pageview|
+--+----------+--------+
| 1| 1 | 13 |
+--+----------+--------+
| 2| 3 | 7 |
+--+----------+--------+

然后检索文章 #3 的综合浏览量:

SELECT pageview FROM visits WHERE article_id = 3;

这种分离还有一个好处,它是一个完美的地方来存储访问次数的附加信息,通过使用查询字符串存储一行,用户代理,如果访问者记录了它的 user_id,例如:

complete_visits

+--+----------+-----------------------------+-------+-------+-------------------+
|id|article_id|querystring |UA |user_id|visit_date |
+--+----------+-----------------------------+-------+-------+-------------------+
| 1| 1 | /article/1/?search=test |Firefox|null |2012-12-12 12:12:12|
+--+----------+-----------------------------+-------+-------+-------------------+
| 2| 1 | /article/1/ |Firefox|12 |2012-12-13 12:12:12|
+--+----------+-----------------------------+-------+-------+-------------------+
| 3| 1 | /article/1/?search=a |Firefox|null |2012-12-14 12:12:12|
+--+----------+-----------------------------+-------+-------+-------------------+
| 4| 1 | /article/1/?search=b |Firefox|null |2012-12-15 12:12:12|
+--+----------+-----------------------------+-------+-------+-------------------+
| 5| 1 | /article/1/?search=c |Firefox|null |2012-12-16 12:12:12|
+--+----------+-----------------------------+-------+-------+-------------------+
| 6| 1 | /article/1/?order=asc |IE |null |2012-12-17 12:12:12|
+--+----------+-----------------------------+-------+-------+-------------------+
| 7| 3 | /article/3/ |Chrome |null |2012-12-18 12:12:12|
+--+----------+-----------------------------+-------+-------+-------------------+
| 8| 3 | /article/3/ |Firefox|4 |2012-12-19 12:12:12|
+--+----------+-----------------------------+-------+-------+-------------------+
| 9| 3 | /article/3/?search=test |Firefox|null |2012-12-20 12:12:12|
+--+----------+-----------------------------+-------+-------+-------------------+

检索文章 #3 的浏览量:

SELECT COUNT(id) FROM complete_visits WHERE article_id = 3;

关于php - 不要仅为特定操作更新 "on update CURRENT_TIMESTAMP",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com