2011-12-23 10 views
1

ログテーブルを作成する必要があります。予想通り、ユーザーIDと古い行と新しい行の値を格納する必要があります。PHPユーザーIDをmysqlトリガーに渡す

私にそれを行うためのトリガーを作成したいのですが、トリガーにパラメーターを送信することはできません。

これを行う方法はありますか?

ご協力いただきありがとうございます。

答えて

4

もう1つのハック:接続ベースの変数@varを使用できます。

サンプル:

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

と更新トリガーにこの変数@user_idを使用することができます。

+0

ありがとう、ありがとうございますが、私はそれを行う方法については全くわかりません – Gerep

+0

@Gerepは、ストアドプロシージャまたはクエリを使用しますか? SPを作成し、更新ステートメントをその中にカプセル化することができます。そしてそれを 'set @user_id = any_value'の前に追加してください。その後、トリガで '@ user_id' varを使うことができます。私は例を投稿することができますが、それは簡単です。 – ravnur

+0

私はクエリを使用しています。例を使用して回答を編集できる場合、それは素晴らしいことでしょう...助けてくれてありがとうございます – Gerep

0

トリガー以外の何かを考えるトリガーになる可能性のある、醜いハックのないものはありません。

今すぐ醜いハックの1 posiibilityのために:

あなたは\ n個を含むことができないユーザ名と仮定すると、あなたは

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

ような何かをして、あなたのトリガがプリペンドユーザ名を脱いでみましょう可能性があり、改行。再び:これは醜いハックです。

関連する問題