->update()

->update() – Met à jour les variables des objets dans une base de données

Synopsis

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

Description

Met à jour les variables des objets courants dans la base de données. Si vous fournissez un objet de données, en tant qu'argument, la méthode mettra à jour uniquement les différences entre le nouveau et l'ancien.

Si la méthode est appelée avec DB_DATAOBJECT_WHEREADD_ONLY comme argument, la requête de mise à jour est construite, basée sur les valeurs whereAdd, plutôt que sur la clé primaire. Ceci permet de meilleures performances pour les mises à jour globales, plutôt que de mettre à jour ligne par ligne.

Parameter

  • DataObject $original - si fourni, la requête de mise à jour sera construite depuis la différence entre l'objet de données actuel et l'original.

Return value

int : nombre de lignes affectées ou FALSE si une erreur survient

Throws

Possible PEAR_Error values
Code erreur Message d'erreur Signification Solution
DB_DATAOBJECT_ERROR_INVALIDCONFIG "update:No table definition for $table" Aucune définition de table pour $table
DB_DATAOBJECT_ERROR_NODATA "update: No Data specifed for query $settings" Aucune donnée fournie pour la requête $settings

Note

This function can not be called statically.

Example

Récupération et mise à jour simple

<?php
$person 
= new DataObjects_Person;
$person->get(12);
$person->name='fred';
$person->update();
$person = new DataObjects_Person;
$person->get(12);
$original = clone($person); // le clônage est émulé en PHP 4 pour des raisons de compatibilité.
$person->name='fred';
$person->update($original);
?>

SQL résultant


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

Récupération et mise à jour simple

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

SQL résultant


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