Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
01c93d3e
Commit
01c93d3e
authored
Apr 10, 2007
by
runa
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bulkdelete delete multikey rows
parent
f402f879
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
14 deletions
+28
-14
Transaction.php
lib/Doctrine/Transaction.php
+28
-14
No files found.
lib/Doctrine/Transaction.php
View file @
01c93d3e
...
...
@@ -127,21 +127,35 @@ class Doctrine_Transaction extends Doctrine_Connection_Module
foreach
(
$this
->
delete
as
$name
=>
$deletes
)
{
$record
=
false
;
$ids
=
array
();
foreach
(
$deletes
as
$k
=>
$record
)
{
$ids
[]
=
$record
->
getIncremented
();
$record
->
assignIdentifier
(
false
);
}
if
(
$record
instanceof
Doctrine_Record
)
{
$params
=
substr
(
str_repeat
(
"?, "
,
count
(
$ids
)),
0
,
-
2
);
$query
=
'DELETE FROM '
.
$record
->
getTable
()
->
getTableName
()
.
' WHERE '
.
$record
->
getTable
()
->
getIdentifier
()
.
' IN('
.
$params
.
')'
;
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
);
}
if
(
$record
instanceof
Doctrine_Record
)
{
$params
=
substr
(
str_repeat
(
"?, "
,
count
(
$ids
)),
0
,
-
2
);
$query
=
'DELETE FROM '
.
$record
->
getTable
()
->
getTableName
()
.
' WHERE '
.
$record
->
getTable
()
->
getIdentifier
()
.
' IN('
.
$params
.
')'
;
$this
->
conn
->
execute
(
$query
,
$ids
);
}
$this
->
conn
->
execute
(
$query
,
$ids
);
}
}
}
$this
->
delete
=
array
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment