我一直在尝试在动态页面上编写php / mysql命中计数器,但它似乎不起作用。这是迄今为止的代码..
while{
$incre=+1;
$update=$db->prepare("UPDATE hits=hits+1 WHERE id="$sid"");
$data=array($incre,$sid);
$update->execute($data);
$db->prepare("INSERT INTO thread (hits) VALUES (1) ON DUPLICATE KEY UPDATE hits=hit+1`");
if($count==null)
{echo "<p style='text-align:center; clear:both; color:black; font-size:95%;'>Total visits: 0</p>";}
else
{echo "<p style='text-align:center; clear:both; color:black; font-size:95%;'>Total visits: <b style='color:red;'>".$count."</b></p>";}
}
答案 0 :(得分:0)
因此,您的代码存在很多问题。您没有以安全的方式设置sql update语句(sql注入)。然后你没有正确调用它(你应该总是使用命名参数)。然后永远不会调用您的insert语句。您也永远不会从数据库中获取点击数来显示。发生了很多奇怪的事情。
$update = $db->prepare("INSERT INTO thread (id, hits) VALUES (:id, 1) ON DUPLICATE KEY UPDATE hits=hits+1");
$update->execute(array(':id' => $sid));
$query = $db->prepare("SELECT hits FROM thread WHERE id=:id");
$query->execute(array(':id' => $sid));
$counter = $query->fetchColumn(0);
echo "<p style='text-align:center; clear:both; color:black; font-size:95%;'>Total visits: <b style='color:red;'>".$counter."</b></p>";