DB_DataObjectについて。
update(),setFrom()を使う。
//フィールド名と値の配列を予め定義。(本当はFormから取得した値)
//フィールドは一部でもよい
$array=array("id"=>1, "name"=>"New Sale");
$sale = new DataObject_sale;
$sale->get(1);
$sale->setFrom($array);
$sale->update();
これでOK。
Insertもこれでいけるかとやってみた。
$sale->setFrom($array);
$ret = $sale->Insert();
...$ret = False でした。
配列を渡すことはできないのかーーーー。
うーん。
いちいち
$sale->id=2;
$sale->name="New Sale";
などと書かないとだめなのか。。
#DataObject_saleのラッパークラス作ってるので
#update($array),insert($array)と作りたかった。
if(strlen($_POST["name"])>0){
$sale->name = "New Sale";
}って、全部書く?
....そうするくらいなら$_POST配列から自分でSQL作った方が速い?
もう少し悩もう。
====================================
追記。
>if(strlen($_POST["name"])>0){
> $sale->name = "New Sale";
>}
こんなことしなくても $sale->$field_name って、書けるんですね。。
DataObject.php の中をのぞいてみました。
keyが、渡した値でなく 1 に無条件になっている。
どこかで。insertのはじめの方が怪しそう。
もうちょっと追ってみます。
コメントする