[s2container-php5:80] Re: timestampによる排他制御とinsert文の自動生成について
Yusuke Hata
nowel @ xole.net
2007年 2月 26日 (月) 02:58:15 JST
ハタです。
下記、確認しました。
以前、一部のDBMSでtimestampカラムに対してタイムスタンプ(integer/long)を入れなければ
エラーが発生したかと思いましたが
指摘された内容でテストケースが通った(Oracle/MySQL/PostgreSQL/SQLite)ので、
指摘内容のまま次のバージョンに適用したいと思います。
# Firebirdではテスト機がなかったので、試せなかったですが、問題ないでしょう
次のバージョン(1.1.1の後)となるS2Dao.PHP5-1.1.2には以前のもの[DAOPHP-8]を含め
3月上旬のリリースに向けて作業をしています。
以上です、よろしくお願いします。
Eishi Kuroda <kuroda @ jetsetrecords.net> wrote:
> こんにちは、黒田です。
>
> 自動生成insert文でのtimestampフィールドの設定に不具合と思われる点を発
> 見しましたので報告させて頂きます。
>
> S2Dao.PHP5 1.1.1にて、
> daoクラスに、下記の様なentityを引数としたinsert文の自動生成用メソッド
> を作ります。
>
> public function insert(Department $department);
>
> entityにはtimestampプロパティを定義しておきます。
> このinsertを呼び出すと、
> 自動生成されるSQL内にてtimestampフィールドに対しunixtimeが設定されるよ
> うになっており、この為、挿入後の該当列のtimestampフィールドが
> 0000-00-00 00:00:00となります。
>
> s2dao.core.classes.phpの、
> setupInsertBindVariablesメソッドにて、
>
> if (strcasecmp($propName, $timestampPropertyName) == 0) {
> $this->setTimestamp(time());
>
> となっているのが問題では無いかと思われましたので、
> 下記の様に修正してみたところ、
> 自動生成insert文で正しくtimestampが設定されるようになりました。
>
> $this->setTimestamp(date('Y-m-d H:i:s', time()));
>
> これで問題なければ、修正をお願いしたいと思います。
> では、よろしくお願いいたします。
>
> 黒田映史
>
--
Yusuke Hata <nowel @ xole.net>
blog: http://blog.xole.net/
S2Container-PHP5 メーリングリストの案内