2012-02-25 8 views
-1

私のPHPスクリプトが必要なのは、自分のmysqlデータベースが:UPDATINGまたはINSERTINGのときだけです。PHPで使用するためにmysqlでtriggerを使用できますか?

これを行う方法がわかりません。これを行うための関数はすべて存在しますか? 私は、更新または挿入時に警告するために、mysqlのトリガを使用しているソリューションについて考えました。そしてそれで私のPHPスクリプトの機能を実行します。それをしてもいいですか?

例: (私のPHPスクリプトで)

If ($trigger-> _updating) { 
    echo 'Works update'; 
} elseif ($trigger-> _inserting) { 
    echo 'Works insert'; 
}else{ 
    echo 'did nothing'; 
} 

詳細:

私がやろう:私のmysqlデータベース内のテーブルの更新またはときに挿入されたときにチェックしてください同じテーブルに新しいレコードを追加します。

何をお探しですか?私のPHPスクリプトでは、それが更新または挿入の場合、htmlページ内のテーブル内のデータを更新するか、新しいデータを挿入しました。

テーブル内のデータを更新する(または更新があるかどうかを確認する)場合は、SELECT *ボタンをクリックしてデータをテーブル(私にとっては非常にコストがかかるので非効率です) 新しいレコードの挿入でも同じことが起こります。私はコードを改善して、何の処理もしないようにしたい。

+1

あなたは何をしようとしているのか詳細を教えてください。なぜあなたはMySQLのトリガとしてPHPスクリプトが必要ですか? – Alp

+0

@Alp ok、私は詳細を追加します – Dvex

+0

@Dvex - 事態を複雑にしないでください。論理的にする。パフォーマンス上の問題を抱えている場合は、クエリがインデックスを使用していることを確認し、プロファイリングを行い、ボトルネックがどこにあるかを調べます。これは、第2の推測ではなく、このようにするための時間と労力を節約します。 –

答えて

2

これを行うPHPを取得しないでください。

代わりに、使用しているテクノロジ(PHP、C++、またはコマンドラインプログラムのMySql)に関係なく、整合性を維持するようにデータベースを構築します。これを行うには、制約とトリガーを使用します。このようにして、データベース内のデータは壊れたり無効になることはありません。

関連する問題