限制用户每天将新记录添加到mysql中

时间:2016-12-13 11:44:40

标签: php mysql

我正在开发一个应用程序,用户想在一天内点击并发送两次图像,但我不明白该怎么做,我想给用户一个限制,他可以在一天内发送两次图片,不超过那个。假设每个记录的金额是10卢比,所以它应该是每天20卢比不超过。

$sql = "INSERT INTO `daily_uploads` (img_path, geoplugin_city, geoplugin_regionName, date, amount)
VALUES ('$img', '$city', '$region',  '$date','$amount')";
if ($conn->query($sql) === TRUE) {

echo"success";

}

else{
    echo"Something wrong";
}

2 个答案:

答案 0 :(得分:1)

了解今天使用mysql创建了多少条目:

SELECT COUNT(*) FROM `daily_uploads` WHERE DATE_FORMAT(`date`, '%Y-%m-%d') = CURDATE();

使用此信息禁止在PHP中插入。

答案 1 :(得分:1)

如果我正确理解了您的问题,则每个用户只能有两条记录。这通常是使用CHECK CONSTRAINTs完成的,但不幸的是mysql不支持,所以我们必须使用触发器。

CREATE TRIGGER daily_uploads_check
BEFORE INSERT ON daily_uploads
FOR EACH ROW
BEGIN
  IF( SELECT COUNT(*) FROM daily_upates WHERE /* conditions here */ ) =2  THEN
    SIGNAL 'your error message'
  END IF 
END

您应该aquire locks确保在执行选择查询后没有其他线程正在插入。

相关问题