[s2container-php5:79] timestampによる排他制御とinsert文の自動生成について
Eishi Kuroda
kuroda @ jetsetrecords.net
2007年 2月 25日 (日) 23:18:25 JST
こんにちは、黒田です。
自動生成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()));
これで問題なければ、修正をお願いしたいと思います。
では、よろしくお願いいたします。
黒田映史
S2Container-PHP5 メーリングリストの案内