->delete()

->delete() – 表からアイテムを削除します

Synopsis

int $DB_DataObject->delete ( boolean $useWhere )

Description

主キーあるいは whereAdd() メソッドコールのいずれかに基づいてデータベースからデータを削除します。 デフォルトでは、削除はセットされた変数に基づいて行われます。 しかしながら、 whereAdd() メソッドを使用したい場合、 $useWhere パラメータに DB_DATAOBJECT_WHEREADD_ONLY をセットすべきです。

Parameter

  • boolean $use_where - whereAdd() 条件を使用するかどうかを指定します (デフォルトでは、削除は主キーのみが使用します) 。

Return value

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

Throws

Possible PEAR_Error values
エラーコード エラーメッセージ 意味 解決策
DB_* "*" PEAR::DB を参照してください PEAR::DB を参照してください
DB_DATAOBJECT_ERROR_NODATA "削除: クエリの $condition にデータが指定されていません"    

Note

This function can not be called statically.

Example

単純な削除

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

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

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

結果の SQL

<?php
SELECT 
FROM person WHERE person.id 12
DELETE FROM person WHERE 
person.id 12 )

DELETE FROM person WHERE person.name 'test' ) AND ( person.age 21 )

DELETE FROM person WHERE age 21 )
?>
オブジェクト変数でデータベースを更新する (Previous) 高度なフィルタ - ::
query(), ::
SelectAdd(), ::
whereAdd(), ::
Limit(), ::
OrderBy(), ::
GroupBy(), (Next)
Last updated: Tue, 16 Sep 2014 — 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'.