2013-05-15 73 views
0

不執行查詢之後刪除mysql表的數據我不知道爲什麼自動2分鐘

,這裏是我的嘗試

我用這個代碼從TABEL刪除的登錄嘗試記錄和IP後2分鐘,使用戶嘗試重新登錄

如果另一個soultion是比這更好的,請提交

<!DOCTYPE HTML> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html" /> 
    <meta name="author" content="gencyolcu" /> 

    <title>Untitled 1</title> 
</head> 
<style> 
.fall 
{ 
    background-color: aliceblue; 
    color: darkkhaki; 
    width: 400px; 
    height: 200px; 
    margin-top: 200px; 
    padding: 200px; 
    margin-left: 200px; 
} 
#txt 
{ 
    font-family: fantasy; 
    font-size: xx-large; 
    font-style: italic; 
} 
</style> 
<body> 

<div class="fall"> 
<p id="txt">You have exceeded the allowed login times try again 
</p> 
</div> 
<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("register_form", $con); 


mysql_query("DELETE FROM login_attempts WHERE time < NOW() - INTERVAL 2 minutes"); 

mysql_close($con); 
?> 
</body> 
</html> 
+1

那麼,解決問題的第一步就是獲取MySQL錯誤。在你關閉連接之前,'echo mysql_error();' - 這個在它自己可以幫助你解決你的問題。 –

+1

爲什麼要從登錄嘗試表中刪除?如果只限制檢查登錄嘗試表的距離有多遠,難道你不能得到類似的結果嗎?似乎如果你只是查詢最後2分鐘的表格,你可以保留舊的記錄,並知道是否有人試圖登錄許多帳戶。 –

+0

這不是一個<=的情況嗎? 2分鐘外你沒有嘗試過嗎?如果你從login_attempts中選擇*時間 xQbert

回答

1

試試這個(MINUTE而不是分鐘):

sql_query("DELETE FROM login_attempts WHERE time < NOW() - INTERVAL 2 MINUTE"); 
+0

打敗我吧。請參閱此處查看「INTERVAL」的值域:https://dev.mysql.com/doc/refman/5.5/zh-CN/date-and-time-functions.html#function_date-add – Valdogg21

+0

嘗試之後無法使用 – TheSniper104

+0

@ Valdogg21看看date_sub定義:'DATE_SUB(date,INTERVAL expr unit)'。 expr(你引用的表中的第二列)是2,單位(第一列)是MINUTE。我在這裏發佈之前已經測試過這個表達式。 –

0

我認爲你的語法錯了。

嘗試通過MINUTE

更換MINUTES 「DELETE FROM login_attempts,時間< NOW() - 間隔2 MINUTE

如果它不幫助,張貼在這裏你的MySQL錯誤。

希望它有幫助。