我正在开发一个插件,用于统计用户访问并保存IP、日期和访问计数。在DB中有id(大int)、IP(str)、访问(Int)和日期(DATE)。我在插件主文件中的代码如下:
if (is_admin()){
include WPS_INC . 'back-end.php';
}else{
include WPS_INC . 'front-end.php';
do_action('wps_update_db');
}前面的代码-end.php
function wps_user_visits_count(){
global $wpdb;
$tp = $wpdb->prefix;
$today = date('Y-m-d');
$ip = intval($_SERVER['SERVER_ADDR']);
$is_user_visited_site_today = $wpdb->get_var("SELECT `id`
FROM `{$tp}wps_user_visits`
WHERE `date` = '{$today}' AND `ip` = {$ip}");
if (empty($is_user_visited_site_today)){
$wpdb->insert($tp . 'wps_user_visits',
array(
'ip' => $ip,
'date' => $today
),
array(
'%d','%s'
));
}else{
$wpdb->query("UPDATE `{$tp}wps_user_visits`
SET `visits` = `visits` + 1
WHERE `id` = {$is_user_visited_site_today}");
}
}
add_action('wps_update_db','wps_user_visits_count');它将增加2次访问DB,而不是1次访问。例如,在这一行SET `visits` = `visits` + 1中,如果我将1改为3,它将增加6次访问,而不是3次访问。
我该如何解决这个问题?
我还使用$wpdb->update。没有变化。
发布于 2021-07-07 12:03:57
问题是代码是而不是。
问题在于Wampserver。
因此,如果使用wampserver,请备份数据库和www文件夹,然后使用删除wampserver。使用这个程序进行卸载是非常重要的。
在卸载的第一步之后,您应该使用Revo卸载程序删除所有遗留文件.
在此之后,您可以轻松地安装wampserver,并且您可以很好地运行。
--我应该说我也在使用虚拟主机。因此,如果你使用它,我的回答可能会对你有帮助。
如果您正在使用另一个本地主机程序,如XAMP和拉拉贡,请尝试此解决方案。
https://stackoverflow.com/questions/68255588
复制相似问题