加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 获取mysql表数据的md5 / sha1哈希值?

发布时间:2020-12-13 21:41:23 所属栏目:PHP教程 来源:网络整理
导读:简而言之,在一个全局包含的配置文件中,我从表中获取设置,并使用来自数据库表的settingKey,settingVal在我的代码中定义一个常量,现在我认为没有那么多开销,但是如果我结束了有大量的设置,最好检查一下它们是否已经改变,如果有的话,定义它们,否则不然. 那么底
简而言之,在一个全局包含的配置文件中,我从表中获取设置,并使用来自数据库表的settingKey,settingVal在我的代码中定义一个常量,现在我认为没有那么多开销,但是如果我结束了有大量的设置,最好检查一下它们是否已经改变,如果有的话,定义它们,否则不然.

那么底线,我应该/我可以得到一个表的哈希并将其与上一个已知的表哈希进行比较,以查看值是否已更改?或者我是以完全错误的方式解决这个问题,还有一种更有效的方法吗?

谢谢!

解决方法

创建一个触发器,在日志表中写入上次更新的时间等.

CREATE TABLE LOG (
  id integer PRIMARY KEY AUTOINCREMENT,tablename varchar NOT NULL,action ENUM('insert','delete','update') NOT NULL,action_time DATETIME NOT NULL)

DELIMITER $$

CREATE TRIGGER ai_table1 AFTER INSERT ON table1
BEGIN
  INSERT INTO log (id,tablename,action,action_time)
     VALUES (null,'table1','insert',NOW())
END$$

CREATE TRIGGER ad_table1 AFTER DELETE ON table1
BEGIN
  INSERT INTO log (id,NOW())
END$$

CREATE TRIGGER au_table1 AFTER UPDATE ON table1
BEGIN
  INSERT INTO log (id,'update',NOW())
END$$

DELIMITER ;

请注意,触发器不会触发FOR EACH ROW,因为您只想要发生任何更改的日期,这会使触发器在执行多次更新/删除/插入时稍微加快(并且日志稍微缩短).

链接:
触发器:http://dev.mysql.com/doc/refman/5.1/en/triggers.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读