php - 使用 PHP 确保添加到 MySQL 表的唯一性

标签 php sql mysql

我正在尝试创建一个页面来跟踪数据库中的一些基本用户统计信息。我从小处着手,试图跟踪有多少人使用什么用户代理,但我遇到了一个绊脚石。如何检查添加到表中的用户代理是否已经存在?

最佳答案

您可以使存储用户代理字符串的列唯一,并为您的统计数据插入执行 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/

相关文章:

sql - 如何查找小数点后两位以上的值?

sql - 为什么我似乎不能强制Oracle 11g为单个SQL查询消耗更多的CPU

php - Grocery 增删改查 : How to set field dropdown

php - 提交表单后,获取另一个表的条目ID

php - PayPal 的 paymentExecStatus 值

php - 无法连接到PHP中的数据库(使用WAMP服务器)

php - 使用返回 true 或 false 的函数的 PHP 最佳实践是什么?

python - 在 sqlite3 WHERE 列 = 中插入或替换

php - MySQli 行计数总是返回 0?

mysql - MySQL LIMIT 子句中的语法错误