PHP首次运行然后失败

时间:2012-08-11 13:53:24

标签: php mysql

基本上这样做是因为在用户按下按钮后,他们必须等待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没有行,则会生成一个新行,如果有,则会更新它。在第一次之后,它不再有效。希望有人能提供帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

您的更新语句有点偏,因此更新失败;

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

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

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

答案 1 :(得分:0)

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