![](/img/trans.png)
[英]In php, is there any way to determine whether ::class was used when generating a string?
[英]Is there any way to determine whether an update to a database row was performed by a web application (php process), or run by hand through a DB GUI
我需要允許通過數據庫 GUI 對我的審計系統進行編輯,以便它們也被跟蹤。 我正在使用 BEFORE 觸發器更新審計表,並且我希望能夠更改審計行以指示更新的來源是什么(通過現有的 'modified_by' 列)。
我無法為此向審計表添加額外的列,因為我希望能夠在不指定如下表列的情況下從更新的表復制到審計表(我不希望此觸發器要求我使用更改更新它到模式)。
我的觸發器:
BEGIN
INSERT INTO contacts_audit SELECT * FROM contacts WHERE id = NEW.id;
END
偽觸發器:
BEGIN
IF(GUI EDIT) THEN
SET NEW.modified_by_id = 1; /* 1 is the administrator id */
END IF;
INSERT INTO contacts_audit SELECT * FROM contacts WHERE id = NEW.id;
END
連接到數據庫的“DB GUI”是一個客戶端,一個 php 連接也是一個客戶端,與連接到數據庫的任何其他方式相同,所以沒有像“這是 php”這樣的標志。
但是,您可以在觸發器中使用 USER() 或 SESSION_USER() 函數來獲取當前連接的活動用戶/主機名,因此如果您想將它們分開,只需為 php 和 gui 使用不同的用戶/主機。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.