... | ... |
@@ -417,7 +417,7 @@ sub execute{ |
417 | 417 |
} |
418 | 418 |
|
419 | 419 |
# Filter argument |
420 |
- my $f = DBIx::Custom::Util::array_filter_to_hash($args{filter}) |
|
420 |
+ my $f = DBIx::Custom::Util::array_to_hash($args{filter}) |
|
421 | 421 |
|| $query->filter || {}; |
422 | 422 |
foreach my $column (keys %$f) { |
423 | 423 |
my $fname = $f->{$column}; |
... | ... |
@@ -439,7 +439,12 @@ sub execute{ |
439 | 439 |
# Execute |
440 | 440 |
my $sth = $query->sth; |
441 | 441 |
my $affected; |
442 |
- eval {$affected = $sth->execute(@$bind)}; |
|
442 |
+ eval { |
|
443 |
+ for (my $i = 0; $i < @$bind; $i++) { |
|
444 |
+ $sth->bind_param($i + 1, $bind->[$i]); |
|
445 |
+ } |
|
446 |
+ $affected = $sth->execute; |
|
447 |
+ }; |
|
443 | 448 |
$self->_croak($@, qq{. Following SQL is executed. "$query->{sql}"}) if $@; |
444 | 449 |
|
445 | 450 |
# Return resultset if select statement is executed |
... | ... |
@@ -23,7 +23,7 @@ sub filter { |
23 | 23 |
$filter = $_[0]; |
24 | 24 |
} |
25 | 25 |
else { |
26 |
- $filter = DBIx::Custom::Util::array_filter_to_hash( |
|
26 |
+ $filter = DBIx::Custom::Util::array_to_hash( |
|
27 | 27 |
@_ > 1 ? [@_] : $_[0] |
28 | 28 |
); |
29 | 29 |
} |
... | ... |
@@ -60,7 +60,7 @@ sub end_filter { |
60 | 60 |
$end_filter = $_[0]; |
61 | 61 |
} |
62 | 62 |
else { |
63 |
- $end_filter = DBIx::Custom::Util::array_filter_to_hash( |
|
63 |
+ $end_filter = DBIx::Custom::Util::array_to_hash( |
|
64 | 64 |
@_ > 1 ? [@_] : $_[0] |
65 | 65 |
); |
66 | 66 |
} |
... | ... |
@@ -3,28 +3,28 @@ package DBIx::Custom::Util; |
3 | 3 |
use strict; |
4 | 4 |
use warnings; |
5 | 5 |
|
6 |
-sub array_filter_to_hash { |
|
7 |
- my $array_filter = shift; |
|
6 |
+sub array_to_hash { |
|
7 |
+ my $array = shift; |
|
8 | 8 |
|
9 |
- return unless $array_filter; |
|
10 |
- return $array_filter if ref $array_filter eq 'HASH'; |
|
9 |
+ return unless $array; |
|
10 |
+ return $array if ref $array eq 'HASH'; |
|
11 | 11 |
|
12 |
- my $filter = {}; |
|
12 |
+ my $hash = {}; |
|
13 | 13 |
|
14 |
- for (my $i = 0; $i < @$array_filter; $i += 2) { |
|
15 |
- my $column = $array_filter->[$i]; |
|
16 |
- my $f = $array_filter->[$i + 1]; |
|
14 |
+ for (my $i = 0; $i < @$array; $i += 2) { |
|
15 |
+ my $key = $array->[$i]; |
|
16 |
+ my $f = $array->[$i + 1]; |
|
17 | 17 |
|
18 |
- if (ref $column eq 'ARRAY') { |
|
19 |
- foreach my $c (@$column) { |
|
20 |
- $filter->{$c} = $f; |
|
18 |
+ if (ref $key eq 'ARRAY') { |
|
19 |
+ foreach my $k (@$key) { |
|
20 |
+ $hash->{$k} = $f; |
|
21 | 21 |
} |
22 | 22 |
} |
23 | 23 |
else { |
24 |
- $filter->{$column} = $f; |
|
24 |
+ $hash->{$key} = $f; |
|
25 | 25 |
} |
26 | 26 |
} |
27 |
- return $filter; |
|
27 |
+ return $hash; |
|
28 | 28 |
} |
29 | 29 |
|
30 | 30 |
1; |