一回も披露したことのない豆知識

いつもお世話になっております。
PHP+MySQLにてデータ管理をしています。
わりと初心者ですがよろしくお願いします。

入力フォームにてhogeの値を1とし、DBを書き換えるとします。
これを入力後、この1という値を30日後に自動で2に上書きする、というようなことは実現可能でしょうか?

コードを組む上での考え方など教えていただければ幸いです。

A 回答 (4件)

可能か不可能かと問われれば可能です。


1つのPHPでやらせようとするのは無謀に思います。
いくつかやりかたが思い浮かびますが、私ならcronで実行するバッチを組んで実行させます。

フォームの値を本来のとは異なるDBに格納しておき、
毎日1回cronで実行するPHPスクリプトでそのDBを参照し、
30日前に格納されたデータがあれば本来のDBに格納する、というような。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

先に別のDBに値を格納しておく、というのは考えつきませんでした。
cronの勉強も必要ですね。
参考にさせていただきます!

お礼日時:2011/04/06 12:29

時間がシビアでなくてよいなら、


php内に、システム日付と登録した日付が30日以上開いていたらupdateするSQLを適当に埋め込んでおいて、
だれかが、サイトを閲覧してくれたら、そのきっかけで、DBを書き替えるという方法もありますね。

毎回だと負荷高くなるので、その日初めてアクセスがあったときだけという ロジックを入れて。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

確かに、特にシビアというわけでもないのでその方法でも問題なさそうですね。
誰かのアクセスでこのプログラムを動作させるというのは思いつきませんでした。
参考にさせていただきます!

お礼日時:2011/04/06 12:35

こんにちは。



MySQLのバージョンにもよりますが、
Eventというものもあります・・・。
参考まで。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Eventですか。ちょっと使い方がよくわからないので調べてみます!

お礼日時:2011/04/06 12:30

どちらかというと、DBサーバ側での実装になると思います。


各データの入力時間をレコードに持たせておいて、夜間バッチ等でチェックを行い、一ヶ月経っている物をインクリメントする、とか。

その場合はJavaとかPerlとか、サーバサイドで独自に稼動する言語で組む必要があります。
PHPはどちらかというとWebのUI側の実装の言語になると思うので、一度DBに入ってしまった物を管理するのには向かないと思いますよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

うーんなるほど・・・。
サーバをいじる知識はほぼ皆無なので、なにか方法があればよいのですが。

お礼日時:2011/04/06 12:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!