我正在尝试创建一个hit counter
,但是此hit counter
会在每次加载页面时更新counter
列。
$mread = $conn->prepare("UPDATE bn_publicacao SET counter = counter + 1 WHERE id = :id");
$mread->bindParam(':id', $id, PDO::PARAM_INT);
$mread->execute();
我希望它每个IP /会话仅更新一次counter
。我该怎么办?
答案 0 :(得分:1)
session_start();
可选: 检查会话是否开始。 这可能是用于设置会话配置的函数。
if(function_exists('session_status')){
if(session_status() != PHP_SESSION_ACTIVE)die('no session');
}else{
die('no session');
};
启动并配置会话后,可以使用$ _SESSION中的变量。
if(empty($_SESSION['counter']))
{
$_SESSION['counter'] = 1;
$mread = $conn->prepare("UPDATE bn_publicacao SET counter = counter + 1 WHERE id = :id");
$mread->bindParam(':id', $id, PDO::PARAM_INT);
$mread->execute();
};
这样,只有在$ _SESSION ['counter']不存在时,它才会运行查询代码。
这仅是每个会话一次计数器的示例,而不是查询。