->delete()

->delete() – Efface des éléments d'une table

Synopsis

int $DB_DataObject->delete ( boolean $useWhere )

Description

Efface des données d'une base de données, soit en utilisant une clé primaire, ou basé sur un appel à une méthode whereAdd(). Par défaut, l'effacement basera sa requête sur les variables définies, sinon, si vous voulez utiliser la méthode whereAdd(), vous devez définir le paramètre $useWhere à DB_DATAOBJECT_WHEREADD_ONLY.

Parameter

  • boolean $use_where - utilise les conditions whereAdd() (par défaut, l'effacement n'utilise que les clés primaires).

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_* "*" see PEAR::DB see PEAR::DB
DB_DATAOBJECT_ERROR_NODATA "delete: No Data specifed for query $condition "

Note

This function can not be called statically.

Example

Effacement simple

<?php
$person 
= new DataObjects_Person;
$person->get(12);
$person->delete();

$person = new DataObjects_Person;
$person->whereAdd('age < 21');
$person->delete(DB_DATAOBJECT_WHEREADD_ONLY);
?>

SQL résultant

<?php
SELECT 
FROM person WHERE id=12
DELETE FROM person WHERE id
=12 AND name='test' AND age=21
DELETE FROM person WHERE age 
21
?>
Met à jour les variables des objets dans une base de données (Previous) Advanced Filters - ::
query(), ::
SelectAdd(), ::
whereAdd(), ::
Limit(), ::
OrderBy(), ::
GroupBy(), (Next)
Last updated: Sun, 29 Aug 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: tmilos1@gmail.com
Caution is needed, if we have a multicolumn primary key.
eg. primary key for person is (name, age)

$person = new DataObjects_Person;
$person->name = 'test';
$person->age = $some_age;
$person->delete();

If $some_age is not set, then the $person->delete() method will delete all person's with the name 'test'.
In the case where the primary key is one column, we are protected from this kind of errors with raised error 'delete: No condition specifed for query'.