我正在使用Android应用程序为我们的工程师提供现场和出勤时间和考勤软件。它的基本工作方式是工程师点击按钮进入/退出,应用程序从手机收集一些数据,如时间和位置,然后发送到内部托管服务器上的php脚本。然后PHP脚本将值插入到phpMyAdmin MySql表中,然后由时间和考勤软件选择此信息。
所有这一部分工作正常,但是我一直在表中得到随机0值,我每天得到它们一次,这些0值停止时间和考勤软件从表中获取数据并阻止系统。
起初我以为可能是工程师只是没有输入他们的ID导致php myadmin表自动输入0,但是我添加了代码到应用程序停止0被发送到脚本,并测试了这个以查看它确实有用。
在查看之后,每当这些0值被放入时,没有时间或其他信息被拾取,这可能使我相信这些值不是来自应用程序,并且可能是某种故障。
我想知道是否有一种方法可以设置php表每5分钟从表中自动删除0个值?或者,如果有另一种方法摆脱这些0,而不必经常检查表并删除它们?
对此的帮助将不胜感激:)
答案 0 :(得分:1)
您可以使用触发器模拟值约束:
DELIMITER $
CREATE TRIGGER constraint_lng_lat
BEFORE INSERT ON clockings FOR EACH ROW
BEGIN
IF NEW.longitude = 0 AND NEW.latitude = 0 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Cannot insert row: wrong value 0 for latitude and longitude.';
END IF;
END;
$
DELIMITER ;
更新可能需要类似的触发器。
让它们运行后删除当前行0' s。
触发器中发出的通用异常也可以帮助您找出出现这些不需要的行的原因。