... | ... |
@@ -241,19 +241,17 @@ sub delete { |
241 | 241 |
if !$opt{where} && !defined $opt{id} && !$opt{allow_delete_all}; |
242 | 242 |
|
243 | 243 |
# Where |
244 |
- my $where = defined $opt{id} |
|
245 |
- ? $self->_id_to_param(delete $opt{id}, $opt{primary_key}, $opt{table}) |
|
246 |
- : $opt{where}; |
|
247 |
- my $w = $self->_where_clause_and_param($where, $opt{where_param}); |
|
244 |
+ my $wcp = $self->_where_clause_and_param($opt{where}, $opt{where_param}, |
|
245 |
+ delete $opt{id}, $opt{primary_key}, $opt{table}); |
|
248 | 246 |
|
249 | 247 |
# Delete statement |
250 | 248 |
my $sql = "delete "; |
251 | 249 |
$sql .= "$opt{prefix} " if defined $opt{prefix}; |
252 |
- $sql .= "from " . $self->_q($opt{table}) . " $w->{clause} "; |
|
250 |
+ $sql .= "from " . $self->_q($opt{table}) . " $wcp->{clause} "; |
|
253 | 251 |
|
254 | 252 |
# Execute query |
255 | 253 |
$opt{statement} = 'delete'; |
256 |
- $self->execute($sql, $w->{param}, %opt); |
|
254 |
+ $self->execute($sql, $wcp->{param}, %opt); |
|
257 | 255 |
} |
258 | 256 |
|
259 | 257 |
sub delete_all { shift->delete(allow_delete_all => 1, @_) } |
... | ... |
@@ -1578,12 +1576,14 @@ sub _where_to_obj { |
1578 | 1576 |
} |
1579 | 1577 |
|
1580 | 1578 |
sub _where_clause_and_param { |
1581 |
- my ($self, $where, $param) = @_; |
|
1582 |
- |
|
1579 |
+ my ($self, $where, $param, $id, $primary_key, $table) = @_; |
|
1580 |
+ |
|
1583 | 1581 |
$where ||= {}; |
1582 |
+ $where = $self->_id_to_param($id, $primary_key, $table) if defined $id; |
|
1584 | 1583 |
$param ||= {}; |
1585 | 1584 |
my $w = {}; |
1586 | 1585 |
my $where_clause = ''; |
1586 |
+ |
|
1587 | 1587 |
if (ref $where eq 'ARRAY' && !ref $where->[0]) { |
1588 | 1588 |
$w->{clause} = "where " . $where->[0]; |
1589 | 1589 |
$w->{param} = $where->[1]; |
... | ... |
@@ -2311,7 +2311,6 @@ $dbi = DBIx::Custom->connect; |
2311 | 2311 |
eval { $dbi->execute("drop table $table1") }; |
2312 | 2312 |
$dbi->execute($create_table1_2); |
2313 | 2313 |
$param = {$key3 => 3, $key2 => 4}; |
2314 |
-$DB::single = 1; |
|
2315 | 2314 |
$dbi->insert( |
2316 | 2315 |
$param, |
2317 | 2316 |
primary_key => [$key1, $key2], |
... | ... |
@@ -2327,7 +2326,6 @@ $dbi = DBIx::Custom->connect; |
2327 | 2326 |
eval { $dbi->execute("drop table $table1") }; |
2328 | 2327 |
$dbi->execute($create_table1_2); |
2329 | 2328 |
$param = {$key3 => 3, $key2 => 4}; |
2330 |
-$DB::single = 1; |
|
2331 | 2329 |
$query = $dbi->insert( |
2332 | 2330 |
$param, |
2333 | 2331 |
primary_key => [$key1, $key2], |