PEAR Manual
Prev |  | Next

# ->update()

->update() -- Update objects variables into database

## Synopsis

``int $DB_DataObject->update` ([dataobject|boolean $original|$useWhere])`

## Description

Updates current objects variables into the database. if you supply it with a dataObject, as an argument, it will only update the differences between the new and old.

if called with DB_DATAOBJECT_WHEREADD_ONLY as the argument, the update request is built based on the whereAdd values, rather than the primary key. This enables global updates to be performed, rather than single row ones.

## Parameter

- `DataObject $original` - if provided the update query will be built from the difference between the current and original dataobject.

## Return value

`int` number of rows affected or `FALSE` on failure

## Throws

Table 33-1. Possible PEAR_Error values

Error code | Error message | Meaning | Solution
--- | --- | --- | ---
DB_DATAOBJECT_ERROR_INVALIDCONFIG | "update:No table definition for $table" |  |
DB_DATAOBJECT_ERROR_NODATA | "update: No Data specifed for query $settings" |  |

## Note

This function can not be called statically.

## Example

Example 33-1. Simple fetch and update
    $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);

Example 33-2. Resulting 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

Example 33-3. Simple fetch and update
    $person = new DataObjects_Person;
    $person->removed=1;
    $person->whereAdd('age > 21');
    $person->update();

Example 33-4. Resulting SQL
    SELECT * FROM person WHERE id = 12;
    UPDATE person SET removed=1 WHERE age > 21

Prev | Home | Next
->insert() | Up | ->delete()