我正在尝试创建一个页面来跟踪数据库中的一些基本用户统计信息。我从小处着手,试图跟踪有多少人使用什么用户代理,但我遇到了一个绊脚石。如何检查添加到表中的用户代理是否已经存在?
最佳答案
您可以使存储用户代理字符串的列唯一
,并为您的统计数据插入执行 INSERT ... ON DUPLICATE KEY UPDATE
对于表格:
CREATE TABLE IF NOT EXISTS `user_agent_stats` (
`user_agent` varchar(255) collate utf8_bin NOT NULL,
`hits` int(21) NOT NULL default '1',
UNIQUE KEY `user_agent` (`user_agent`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| user_agent | varchar(255) | NO | PRI | NULL | |
| hits | int(21) | NO | | NULL | |
+------------+--------------+------+-----+---------+-------+
您可以使用以下查询来插入用户代理:
INSERT INTO user_agent_stats( user_agent ) VALUES('user agent string') ON DUPLICATE KEY UPDATE hits = hits+1;
多次执行上述查询得到:
+-------------------+------+
| user_agent | hits |
+-------------------+------+
| user agent string | 6 |
+-------------------+------+
关于php - 使用 PHP 确保添加到 MySQL 表的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3482194/