gpt4 book ai didi

php - 如何在 php 中为数据库中选定的表创建 sql 日志?

转载 作者:行者123 更新时间:2023-11-30 00:50:35 24 4
gpt4 key购买 nike

案例场景:

数据库:sample_db

Table's : table_1 ,table_2 , table_3 , table_4

所有表格都有列row_id

如果 table_1table_3row_id = 'some_value' 有任何行插入/更新/删除,我想创建 sql 查询日志> 对于 sample_db

编辑:

Sample Example :

假设有一个数据库 school_db ,其中包含以下表:

a.school. [school_id,school_name] 
b.class. [school_id,class_id,class_name]
c.section. [school_id,class_id,section_id,section_name]
d.marks. [school_id,student_id,marks]
e.exams. [school_id,class_id,exam_id,exam_name]

现在对于特定学校,假设“ABC school”的 school_id = 10 。

I want to log all the sql queries that are run for 'ABC school' for tables school,marks and exams.

最佳答案

您可以在数据库中使用触发器。

类似这样的事情:

CREATE TRIGGER log_update AFTER UPDATE ON table_1
FOR EACH ROW
BEGIN
IF NEW.row_id in ('some_value','some_other_value') THEN
INSERT INTO log .....;
END IF;
END;

将点替换为要插入日志中的内容。对 table_3 重复此操作。

同样重复此操作,将 UPDATE 替换为 DELETE。

您可以使用它来触发 INSERT,但我不明白这一点,因为 row_id 尚不存在(假设它是唯一的)。

关于php - 如何在 php 中为数据库中选定的表创建 sql 日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014996/

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