为什么我的php / mysql更新不准确?

时间:2014-03-30 00:34:43

标签: php mysql sql

我有一个网页,上面有一个按钮。当它点击它的按钮时,它会向一个页面发送一个请求,上面有这个代码

$userName = "tdscott";
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$divID = explode('?', $url);
$id = 0;
$id = explode('@',$divID[1])[1];



$func = $divID[2];
$find = mysqli_fetch_array(mysqli_query($con,"SELECT likes FROM status WHERE id='$id'"))['likes'];

if ($func == "addLike")
{

$promoted = $userName . "-";
mysqli_query($con, "UPDATE status SET promotedBy = CONCAT(promotedBy,'$promoted') WHERE id='$id'");

$find++;
mysqli_query($con,"UPDATE status SET likes = '$find' WHERE id='$id'");
echo $find;


}//end if addLike
elseif($func === "removeLike")
{
 echo "ERROR";
}//end if removeLike
elseif ($func === "getLikes")
{
echo $find;
}//end if getLikes


mysqli_close($con);

我留下了数据库连接信息。但由于某些原因,当它被调用时会产生不准确的结果。例如......有时它会在我的表中的promoteBy字段中放置$promoted的多个实例,有时它会更新表中id不等于当前$id的其他行。我想知道是否以某种方式将$id变量与之前提交的addLike变量混为一谈。有没有办法在每次调用之前重置变量?

请注意:在if语句中,我们只查看{{1}}部分。我把另一个包括在内以防它引起问题。

1 个答案:

答案 0 :(得分:-1)

unset($id); 

抱歉应该做更多的研究。