我正在使用一个应用程序,其中用户假设每天单击并发送两次图像,但是我不明白该怎么做,我想给用户一个限制他一天可以发送两次图片,而不超过那个。
$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";
}
找出今天使用MySQL进行了多少条条目:
SELECT COUNT(*) FROM `daily_uploads` WHERE DATE_FORMAT(`date`, '%Y-%m-%d') = CURDATE();
使用此信息禁止在Php中插入。
如果我正确理解了您的问题,则每个用户只能有两个记录。通常是使用检查约束完成的,但不幸的是,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
您应该锁定锁定,以确保在执行选择查询后,没有其他线程在插入的那一刻。