我正在开发一个应用程序,用户想在一天内点击并发送两次图像,但我不明白该怎么做,我想给用户一个限制,他可以在一天内发送两次图片,不超过那个。假设每个记录的金额是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";
}
答案 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确保在执行选择查询后没有其他线程正在插入。