Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP确保MySQL表中添加内容的唯一性_Php_Sql_Mysql - Fatal编程技术网

使用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:;参考文献:;