1

我创建此代码以将页面视图存储在数据库中,但我现在无法更新行...

我需要检查会话和 url 是否与我需要更新行视图相同。这是代码

$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$browser = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
$referer = mysql_real_escape_string($_SERVER['HTTP_REFERER']);
$url = mysql_real_escape_string($_SERVER['REQUEST_URI']);
$session = session_id();


mysql_query("   INSERT INTO page_view(ip,url,referer,session,view) 
                    VALUES (
                    '".$ip."',
                    '".$url."',
                    '".$referer."',
                    '".$session."',
                    '1')
                    ");
4

3 回答 3

1

使url,sessionpair唯一并使用ON DUPLICATE KEY子句

mysql_query("INSERT INTO page_view(ip,url,referer,session,view) 
                VALUES (
                '".$ip."',
                '".$url."',
                '".$referer."',
                '".$session."',
                '1')
             ON DUPLICATE KEY UPDATE view = view +1
                ");
于 2012-04-11T11:29:09.800 回答
0

我会查询该会话的最后插入,然后检查 url 是否更改。

If (changed) update;
Else insert;
于 2012-04-11T11:27:50.170 回答
0

我会在 ip、url 和 session 列上创建一个唯一索引,然后在重复键上执行插入...:

INSERT INTO page_view(ip,url,referer,session,view)
VALUES ('".$ip."','".$url."','".referer."','".$session."','1')
ON DUPLICATE KEY UPDATE view = view + '1'");
于 2012-04-11T11:32:19.027 回答