laravel 如何在MYSQL中使用PHP在数据库表中插入、更新、删除记录时制作日志

qyuhtwio  于 2023-01-31  发布在  Mysql
关注(0)|答案(3)|浏览(143)

我想为我的数据库日志的细节,而记录插入到任何表,更新任何表,删除任何记录从表中的MYSQL - PHP。请给予我一些想法。

jogvjijk

jogvjijk1#

您已经使用了laravel标记,所以我假设您想找到一种"Laravel方式"来完成它。
最佳实践是使用雄辩事件。
每次Laravel将命中DB时,它将尝试运行以下一些事件:creating, created, updating, updated, saving, saved, deleting, deleted, restoring, restored
-ing事件在命中DB之前使用,-ed事件在命中DB之后立即使用。
示例:

public function boot()
{
    User::created(function () {
        Log::info('User was just created successfully');
    });
}
hc8w905p

hc8w905p3#

一个解决方案是编写一个helper函数,记录成功的插入/更新sql查询,如果你完全控制你的PHP应用程序的话。helper函数可以在插入/更新查询的每个示例上调用,记录sql查询的特性。例如,一些特性可以是表名、记录id、操作类型(即插入或更新)以及系统日期。
在我开发的模块中,这些特征是从原始sql查询中自动提取出来的,这是日志问题的一种解决方案。
Here is my working solution. See the repository's Readme file to see how to add the module to your PHP application
下面是它的工作原理:
1.我们将原始SQL查询传递给日志模块中的一个函数;
1.该函数将从查询中提取SQL特征;
1.它将保存所有功能到日志表中,我们已经在数据库中设置,以及系统日期和IP(其他功能也可以提取);
要查看记录的数据(作为已记录数据的界面):
1.我们在模块的前端调用main函数;
1.此主函数将获取其应返回的最新日志记录的数量作为参数;
1.它将整齐地呈现日志记录,例如,它将收集相同记录上的重复操作数到一个条目中。CSS样式可以根据需要进行调整。
1.使用显示/隐藏按钮可以最小化或恢复整个界面。

相关问题