bulkdelete delete multikey rows
This commit is contained in:
parent
f402f879b2
commit
01c93d3e02
@ -127,6 +127,19 @@ class Doctrine_Transaction extends Doctrine_Connection_Module
|
||||
foreach ($this->delete as $name => $deletes) {
|
||||
$record = false;
|
||||
$ids = array();
|
||||
if (is_array($deletes[count($deletes)-1]->getTable()->getIdentifier())){
|
||||
foreach($deletes as $k => $record){
|
||||
$cond = '';
|
||||
$ids = $record->obtainIdentifier();
|
||||
$query = 'DELETE FROM '.$record->getTable()->getTableName().' WHERE ';
|
||||
foreach(array_keys($ids) as $id){
|
||||
if ($cond){ $cond .= " AND ";}
|
||||
$cond .= " $id = ? ";
|
||||
}
|
||||
$query = $query . $cond;
|
||||
$this->conn->execute($query, array_values($ids));
|
||||
}
|
||||
}else{
|
||||
foreach ($deletes as $k => $record) {
|
||||
$ids[] = $record->getIncremented();
|
||||
$record->assignIdentifier(false);
|
||||
@ -142,6 +155,7 @@ class Doctrine_Transaction extends Doctrine_Connection_Module
|
||||
|
||||
$this->conn->execute($query, $ids);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
$this->delete = array();
|
||||
|
Loading…
x
Reference in New Issue
Block a user