2009-04-13 22 views

答えて

4

MySQLにトリガーとストアドプロシージャが追加されましたが、外部プロセスに通知する方法がないと私は考えていません。新しいレコードを探すには、毎秒データベースをポーリングする必要があります。

たとえそうであったとしても、これはPHPプロセスが長寿命であることを前提としているため、レコードが表示されるようにハングアップする余裕があります。ほとんどのPHPは、コードが実行され、できるだけ早く終了するWebサイトに使用されていることを前提に、あなたの持つものと互換性があるかどうかは不明です。

+0

明らかに可能ですが、何らかのアドインを使用しています: http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html#qandaitem-22-5-1-10 –

5

おそらく最も簡単なのは、数秒ごとにDBをポーリングし、新しいレコードが挿入されているかどうかを確認することです。 DBのクエリキャッシングのために、これはDBのパフォーマンスに実質的に影響しません。

2

すべてのデータベースの変更がPHPによって行われた場合は、mysql_queryのラッパー関数を作成し、クエリの型がINSERT、REPLACE、UPDATEまたはDELETEの場合は、それぞれの電子メールを送信する関数を呼び出します。

編集:私は言及を忘れてしまったが、あなたはまた、次のような何か行うことができます:火の鳥やInterbaseの中のようなイベントは、MySQLに存在し、私はその誰かの答えを見れば、私は、MySQLのフォーラムで尋ねる

if (mysql_affected_rows($this->connection) > 0) 
{ 
    // mail(...) 
} 
-1

:はい

チェックこの(私は本当にわかりません)。私は私のイベントテーブルからの新しいイベントで更新されるスクロール表示を持つ 'ライブビュー'画面を作成しました。それは少しばかげているかもしれませんが、一度その速いを実行しています。

2

トリガを作成するには、アップデートが実行されたときよりも実行することができます。 UDF(ユーザー定義関数)を使用して外部プロセスを実行/通知することは可能です。これを行うための組み込みメソッドはありません。したがって、あなたのために行うUDFプラグインをロードする場合です。

Google for 'mysql udf sys_exec'または 'mysql udf ipc'。

関連する問題