我试图避免在数据库中插入多个sql。我的想法是再次插入之前至少等待5分钟。
使用
从上次插入中获取时间$query ="SELECT fecha
FROM almacen
WHERE fecha > NOW() - INTERVAL 5 MINUTE
ORDER BY id DESC LIMIT 1"
$espera=mysqli_query($conexion, $query)
if (empty($espera)) { inserting code } else { close }
但是当它应该返回一个值时,查询不返回任何内容。我认为这可能是一个问题,因为日期是使用php date ( "j/n/Y h:i");
我应该更改时间格式吗?我该怎么用?
答案 0 :(得分:0)
如果你想将你的行限制为每5分钟只有1个条目,我会:
创建一个名为insert_interval DATE
的列,并在该列上创建唯一索引。然后尝试插入,将insert_interval的值设置为
无论5分钟的间隔,插入时间都在。
E.G。将日期标准化为5分钟间隔。
select now() - interval (mod(minute(now()),5)) minute - interval second(now()) second;
插入
insert into table(columns ..., insert_interval) values(
..., now() - interval mod(minute(now()),5) minute - interval second(now())
);
从小时开始,每隔5分钟只允许一行。所以从00:00:00到00:04:59有1行,依此类推。任何在该时间窗口中插入另一行的尝试都会导致重复的键错误,您可以捕获并采取适当的操作。
取消注释最后一个插入,以查看构建架构上的错误。