Zend_Db_Tableクラスを使った行のinsert方法は2つ。
1. createRow()を使うもの
2. insertメソッドを使うもの
※$tblは、Zend_Db_Table_Abstractを継承したDbアクセスクラスです
1. はこんな感じ
$row = $tbl->createRow();
$row->password = xxx;
$row->create_on = new Zend_Db_Exp(‘now()’);
$row->save();
2. はこんな感じ
$params = array(
’password’ => ‘xxxx’,
’create_on’ => new Zend_Db_Exp(‘now()’)
);
$tbl->insert($params);
両者の違いは、設定しなかったカラムの処理方法にあります。
値を設定しなかったカラムに対して、1.はnullを設定し、2.は何も処理をしません。
これはどういうことかというと、1.の場合は、DB設定にてdefault値を設定しても、
行をinsertした後には、カラムの値はnullになっているということです。
これは、結構不便に感じます。
1.は更新時と書き方がほぼ一緒なので覚えやすいのですが、上記default値のことを考慮すると、
insertメソッドを使う方法が、予想外の問題が発生しにくいのではないかと思います。