我正在尝试为我的网站制作一个视图计数器,但由于一些奇怪的原因,一旦它计算了第一个视图,它就不再上升
这是代码
$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);
}
答案 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。您无需进行任何检查或其他查询。