PHP / MYSQL在动态页面上点击计数器

时间:2014-10-04 01:25:59

标签: php mysql

我一直在尝试在动态页面上编写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>";}
} 

1 个答案:

答案 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>";