PHP 第一次工作然后失败


PHP works first time then fails

基本上,这样做是在用户按下按钮后,他们必须等待 2 分钟才能再次按下它。当你第一次按下它时,它可以工作,然后如果你在 2 分钟前再次按下它,它会说"请等待 2 分钟",但 2 分钟后,您可以根据需要按任意次数而不会出错,而不是我想要的。这是代码

<?php
if('sub') {
$client = $_SERVER['REMOTE_ADDR'];
$username="user";
$password="pass";
$database="db";
mysql_connect(localhost,$username,$password);
$time = strtotime("2 minutes");
$now = strtotime("now");
@mysql_select_db($database) or die( "Unable to select database");
$query = "SELECT Time FROM log WHERE IP='$client'";
$result= mysql_query($query);
$num=mysql_num_rows($result);

while($rows=mysql_fetch_array($result)){
$timestamp = $rows['Time'];
}
echo n; 
echo $now;
echo t;
echo $timestamp;

if($now < $timestamp)
{
echo "<center><h2 style='"color:red'" class='"texts'" id='"homeLink'">Please wait 2 minutes.</h2></center>";
}
else{
//some other code
$query1 = "INSERT INTO log VALUES ('$client','$time','$username')";
$query2 = "UPDATE `log` SET `Time`='$time' SET `Username`='$username' WHERE `IP`='$client'";
if($num == 0)
{
mysql_query($query1);
}
else
{
mysql_query($query2);
}
mysql_close();
}
?>

如您所见,如果用户的IP没有行,它会创建一个新行,如果有,它将更新它。第一次之后,它不再起作用。希望有人能帮忙。谢谢!

您的更新语句有点不对劲,因此更新失败;

UPDATE `log` SET `Time`='$time' SET `Username`='$username' WHERE `IP`='$client'"

你应该只使用一次SET,就像这样;

UPDATE `log` SET `Time`='$time', `Username`='$username' WHERE `IP`='$client'"
我很

确定你的数据库不包含你认为它包含的条目。你能检查一下吗(按下按钮后IP和东西)?