gpt4 book ai didi

php mysql 如果存在更新否则插入

转载 作者:行者123 更新时间:2023-11-29 12:00:03 25 4
gpt4 key购买 nike

我正在尝试创建一个 PHP 代码,它将获取 IP、时间以及同一 IP 出现在页面中的次数。现在我已经这样做了:

require "connect.php" ;

$user_ip = $_SERVER['REMOTE_ADDR'];

function ip_add($ip){

$query = "INSERT INTO hits_ip VALUES ('' ,'', '$ip' , now()) ";

@$query_run = mysql_query($query);

}

ip_add($user_ip);

但是计数不起作用。我已经尝试了很多选项,但没有找到一个选项来检查例如 $user_ip 行是否存在,如果存在则在每次刷新时进行计数。

最佳答案

请发布您的CREATE TABLE语句以确保正确。

也就是说,一般来说,您应该能够执行 INSERT ... ON DUPLICATE KEY UPDATE statement ,例如:

INSERT INTO hits_ip VALUES ('' ,'', '$ip' , now()) ON DUPLICATE KEY UPDATE hitcount=hitcount+1;

这将在表中插入一行,如果该行已存在,则增加 hitcount 列。为此,您必须拥有该表的唯一索引(例如,已将 ip 定义为主键)。

您的第二个选择是保留当前查询,并为每个命中插入一行。然后,您可以根据您认为合适的方式合并所有这些行以用于统计目的,例如:

SELECT ip, count(*) 
FROM hits_ip
WHERE hitdate between '2015-01-01' AND '2015-01-31'
GROUP BY ip;

继续深入兔子洞,会出现更多奇怪的选项,例如 creating a trigger hits_ip 表上更新第二个统计表。问题是,只有您知道什么适合您的用例。

关于php mysql 如果存在更新否则插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32542416/

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