->update()

->update() -- オブジェクト変数でデータベースを更新する

概要

int $DB_DataObject->update ([dataobject $original])

説明

現在のオブジェクト変数でデータベースを更新します。 もしデータオブジェクトを引数として提供した場合、 新旧データの間での違いだけが更新されます。

パラメータ

返り値

int 作用した行数、あるいは失敗した場合 FALSE

例外・エラー

表 33-1PEAR_Error の値

エラーコードエラーメッセージ意味解決策
DB_DATAOBJECT_ERROR_INVALIDCONFIG"更新:$table の定義がありません"  
DB_DATAOBJECT_ERROR_NODATA"更新:クエリ $settings にデータが指定されていません"  

注意

この関数は、スタティックにコールする ことはできません。

例 33-1単純なフェッチと更新


<?php
$person = new DataObjects_Person;
$person->get(12);
$person->name='fred';
$person->update();

$person = new DataObjects_Person;
$person->get(12);
$original = clone($person); // clone is emulated in php4 for compatibility reasons.
$person->name='fred';
$person->update($original);
?>

例 33-2結果の SQL

SELECT * FROM person WHERE id = 12
UPDATE person SET name='fred', age='21', eyes='blue' WHERE id = 12

SELECT * FROM person WHERE id = 12
UPDATE person SET name='fred'  WHERE id = 12

例 33-3単純なフェッチと更新


<?php
$person = new DataObjects_Person;
$person->removed=1;
$person->whereAdd('age > 21');
$person->update();
?>

例 33-4結果の SQL

SELECT * FROM person WHERE id = 12;
UPDATE person SET removed=1 WHERE age > 21