查看柜台,不太正常

时间:2010-11-29 19:11:13

标签: php

我正在尝试为我的网站制作一个视图计数器,但由于一些奇怪的原因,一旦它计算了第一个视图,它就不再上升

这是代码

$checkViews = "SELECT COUNT (counter) FROM pageViews WHERE chapterID = '".$_GET["chapterNo"]."'";
$result=getQuery($checkViews,$l);
if($result == 0)
{
$viewupdate =  "INSERT INTO pageViews (chapterID, counter) VALUES ('".$_GET["chapterNo"]."', 1)";
$result=getQuery($viewupdate,$l);   
}
else if ($result != 0)
{
$viewUpdate = "UPDATE pageViews SET counter = counter++ WHERE chapterID = '".$_GET["chapterNo"]."'";
$result=getQuery($viewUpdate,$l);
}

2 个答案:

答案 0 :(得分:0)

在UPDATE sql中将counter++更改为counter+1

此外,您的查询似乎对sql注入开放..

答案 1 :(得分:0)

MySQL中没有像++或C ++中那样的++运算符,所以使用counter = counter + 1递增计数器值。

如果您希望简化代码,请考虑UPDATE ON DUPLICATE KEY。如果您提供的密钥是唯一的,则此语法将插入新值;如果密钥已在使用中,则此语法将更新:

$viewupdate = "INSERT INTO pageViews (chapterID, counter) VALUES ('".$_GET["chapterNo"]."', 1)
    ON DUPLICATE KEY UPDATE counter = counter + 1";

如果您要将新计数器插入数据库以查看其第一个视图中的章节,则会将1作为计数器值插入,或者将计数器增加1。您无需进行任何检查或其他查询。