Php Mysql检查30分钟是否已经过去

Php Mysql检查30分钟是否已经过去,php,mysql,Php,Mysql,我有一个代码,用户向数据库发送数据,这些数据包括时间。我正在尝试设置脚本,以防止用户每30分钟只发送一次数据。下面是我尝试的代码,但它不起作用 if($_SERVER['REQUEST_METHOD']=='POST'){ $username = $_POST['username']; $points= $_POST['points']; $date= $_POST['date']; $data = "SELECT date FROM tracker WHERE (user

我有一个代码,用户向数据库发送数据,这些数据包括时间。我正在尝试设置脚本,以防止用户每30分钟只发送一次数据。下面是我尝试的代码,但它不起作用

if($_SERVER['REQUEST_METHOD']=='POST'){

   $username = $_POST['username'];
   $points= $_POST['points'];
   $date= $_POST['date'];

$data = "SELECT date FROM tracker WHERE (username ='$username' ORDER BY date DESC LIMIT 1)";


$data_result = $connect->query($data);
$re = $data_result->fetch_assoc();

if($re["date"] <= strtotime('-30 minute')){

echo '0';

}}
if($\u服务器['REQUEST\u METHOD']=='POST'){
$username=$_POST['username'];
$points=$_POST['points'];
$date=$_POST['date'];
$data=“从跟踪器中选择日期,其中(用户名=“$username”按日期排序描述限制1)”;
$data\u result=$connect->query($data);
$re=$data\u result->fetch\u assoc();

如果($re[“date”],您可以将当前日期时间与上次日期时间的差值计算为

SELECT TIMESTAMPDIFF(MINUTE, date, now()) as mins FROM tracker WHERE username ='$username' ORDER BY date DESC LIMIT 1

请确保date列的数据类型应为datetime

查询中的括号充其量是不必要的和令人困惑的,如果MySQL允许该查询,我会感到惊讶。警告:使用
mysqli
时,您应该使用and将用户数据添加到查询中。不要使用字符串插值或串联来完成查询这是因为您创建了一个严重的。切勿将
$\u POST
$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能是非常有害的。@ueerdo是的,您可以在条件周围添加参数,但不能在
按顺序
限制
部分周围添加参数。这应该会让人头疼rors。很多问题都可以通过检测和解决,因此错误不容易被忽略。谢谢大家,我仍然很难从数据库中获取数据,任何人都可以建议其他获取数据的方法