阻止特定值输入 mySQL table (PhpMyAdmin)

Stopping a particular value from entering a mySQL table (PhpMyAdmin)

我正在使用一个 android 应用程序供我们的工程师在现场以外的时间和出勤软件打卡。它的基本工作方式是,工程师点击按钮为 in/out 计时,应用程序从 phone 收集一些数据,例如他们的时间和位置,然后将其发送到 php 内部托管服务器上的脚本。 PHP 脚本然后将这些值插入 phpMyAdmin MySql table,然后时间和出勤软件会获取此信息。

所有这部分工作正常,但是我一直在 table 中随机获取 0 值,我大约每天获取一次,这些 0 值会阻止时间和考勤软件从 table 和它阻止了系统。
起初我认为可能是工程师没有输入他们的 ID 导致 php myadmin table 自动输入 0,但是我向应用程序添加了代码以阻止将 0 发送到脚本, 并对其进行了测试,看它是否有效。


看了之后,无论何时输入这些 0 值,都没有时间或其他信息被提取,这可能让我相信这些值不是来自应用程序,并且可能是某种故障。

我想知道是否有办法将 php table 设置为每 5 分钟自动从 table 中删除 0 个值?或者是否有另一种方法可以摆脱这些 0 而不必不断检查 table 并删除它们?

对此的帮助将不胜感激:)

您可以使用触发器模拟值约束:

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 的当前行。

触发器中发出的一般异常信号还可以帮助您找出出现这些不需要的行的原因。