gpt4 book ai didi

PHP pdo,如何将执行到数据库的每个查询作为日志存储到同一数据库中的表中

转载 作者:行者123 更新时间:2023-11-30 00:10:39 25 4
gpt4 key购买 nike

使用php5.5和mysql5.5,开发了一个与PDO连接的应用程序。现在作为日志表我想创建一个表(db_log):

id--------auto
query ----query
create----curent time
user------session-user

例如,并将数据库上的每个插入、更新和删除操作存储到提及表中有一个名为(tbl_temp)的表,其中包含一些列,并且用户来运行查询,例如

(DELETE * FROM tbl_temp where id = 1) from the user (user1)

当此查询像从 (delete.php) 页面运行时..它应该将查询保存在 db_log

表中
id = 1
query = DELETE * FROM tbl_temp where id = 1
create = datetime
user = user1

这样我就能够记录用户在数据库上的每一个操作并控制用户事件,

1 - 这里我需要将查询传递给每个页面中的db_log,或者我可以构建一个类2-网上有什么好的解决方案或例子可以学习吗?

最佳答案

您可以在要记录的所有表上创建插入/更新/删除触发器。在该触发器中,您将数据复制到日志表中。

例如:

delimiter |
CREATE TRIGGER log_insert_tbl_temp BEFORE INSERT ON tbl_temp
FOR EACH ROW BEGIN
insert into db_log (table_name, action, id)
select 'tbl_temp', 'insert', NEW.id;
END
|
delimiter ;

关于PHP pdo,如何将执行到数据库的每个查询作为日志存储到同一数据库中的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24097610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com