2011-12-23 51 views
1

我需要創建一個日誌表,並且如預期的那樣,我需要存儲用戶ID以及新舊行值。PHP將用戶ID傳遞給mysql觸發器

事情是,我想創建一個觸發器來做到這一點,但我知道這是不可能的參數發送到觸發器。

有沒有辦法做到這一點?

在此先感謝您的幫助。

回答

4

另一個黑客:你可以使用基於連接的變量@var

樣本:

set @user_id = 321 
    update table ..... 
    set @user_id = null; 

,並觸發更新,你可以使用這個變量@user_id

+0

感謝您的評論,但我不知道如何去做 – Gerep

+0

@Gerep,請使用使用存儲過程或查詢嗎?您可以創建SP,將更新語句封裝到其中。並在它設置@user_id = any_value之前添加。之後,在觸發器中可以使用'@ user_id' var。我可以發表一個例子,但它是微不足道的。 – ravnur

+0

我使用查詢,如果你可以用一個例子來編輯你的答案,它將會很棒......非常感謝你的幫助 – Gerep

0

不是沒有一些醜陋的黑客 - 這可能是一個觸發器,而不是其他觸發器。

現在的醜陋的黑客攻擊之一posiibility:

假設你用戶名不能包含\ n,你可以不喜歡

UPDATE <tablename> SET <fieldname>=CONCAT('$username','\n','<newvalue>') WHERE <primarykey>=<something> 

,然後讓你的觸發起飛預謀的用戶名和新隊。再次:這是一個醜陋的黑客。