使用PHP确保MySQL表中添加内容的唯一性
我正在尝试创建一个页面来跟踪数据库中的一些基本用户统计信息。我从小事做起,试图跟踪有多少人使用什么用户代理,但我遇到了一个绊脚石。如何检查正在添加到表中的用户代理,以查看它是否已经存在?您可以使存储用户代理字符串的列唯一,并插入。。。在为统计信息插入重复密钥更新时 对于表格:使用PHP确保MySQL表中添加内容的唯一性,php,sql,mysql,Php,Sql,Mysql,我正在尝试创建一个页面来跟踪数据库中的一些基本用户统计信息。我从小事做起,试图跟踪有多少人使用什么用户代理,但我遇到了一个绊脚石。如何检查正在添加到表中的用户代理,以查看它是否已经存在?您可以使存储用户代理字符串的列唯一,并插入。。。在为统计信息插入重复密钥更新时 对于表格: CREATE TABLE IF NOT EXISTS `user_agent_stats` ( `user_agent` varchar(255) collate utf8_bin NOT NULL, `hit
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 |
+-------------------+------+
您可以使存储用户代理字符串的列
唯一
,并插入。。。在为统计信息插入重复密钥更新时
对于表格:
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 |
+-------------------+------+
在将其添加到数据库之前,请从要插入用户代理字符串的表中进行选择。如果mysql_num_rows大于0,则您尝试添加的用户代理已存在。如果mysql_num_rows小于或等于0,则您要添加的用户代理是新的。在将其添加到数据库之前,请从插入用户代理字符串的表中进行选择。如果mysql_num_rows大于0,则您尝试添加的用户代理已存在。如果mysql_num_rows小于或等于0,则您添加的用户代理是新的。References:;参考文献:;