【現象】
VM上からphpのmailメソッドでメールを送信することはできない。
らしいです。
詳しいことは、また今度調べます。
java, android, php, cakephp, centOS, mysql, html, css, js, jQuery などなどで、 つまづいたことをとりあえずメモするために作りました。 そのうちフォーマットとかきれいにしたい。
2012年11月29日木曜日
cakephpのsaveメソッド
【失敗】
saveメソッドを投げると、パラメータの設定されていないカラムはデフォルト値で更新される。
パラメータを設定しなければノータッチだと思っていたのが、間違いでした。
【例】
テーブル
+-----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| member_id | int(7) | NO | PRI | 0 | |
| point | int(7) | YES | | 0 | |
| created_date | datetime | YES | | NULL | |
| edited_date | datetime | YES | | NULL | |
| delete_flg | int(1) | YES | | 0 | |
+-----------------------+--------------+------+-----+---------+-------+
ソース
$params['member_id'] = $member_id;
$params['created_date'] = $date;
$this->create();
$ret = $this->save($params);
ポイントが0で上書きされてしまう。
いくらポイント増やしてもすぐなくなるわけだよねー・・・。
【対策1】
$this->create();を実行した時点でデフォルトの値で更新されてしまうらしいので、
create()はINSERT文のときだけに書き、UPDATE文のときは書かない。
【対策2】
第3引数を使って、更新範囲を限定する。(?)
【対策3】
http://d.hatena.ne.jp/cakephper/20091221/1261385134 の追記2を参考に、今度調べる。。
saveメソッドを投げると、パラメータの設定されていないカラムはデフォルト値で更新される。
パラメータを設定しなければノータッチだと思っていたのが、間違いでした。
【例】
テーブル
+-----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| member_id | int(7) | NO | PRI | 0 | |
| point | int(7) | YES | | 0 | |
| created_date | datetime | YES | | NULL | |
| edited_date | datetime | YES | | NULL | |
| delete_flg | int(1) | YES | | 0 | |
+-----------------------+--------------+------+-----+---------+-------+
ソース
$params['member_id'] = $member_id;
$params['created_date'] = $date;
$this->create();
$ret = $this->save($params);
ポイントが0で上書きされてしまう。
いくらポイント増やしてもすぐなくなるわけだよねー・・・。
【対策1】
$this->create();を実行した時点でデフォルトの値で更新されてしまうらしいので、
create()はINSERT文のときだけに書き、UPDATE文のときは書かない。
【対策2】
第3引数を使って、更新範囲を限定する。(?)
【対策3】
http://d.hatena.ne.jp/cakephper/20091221/1261385134 の追記2を参考に、今度調べる。。
登録:
投稿 (Atom)