diff options
Diffstat (limited to 'bucky2/lib/Bucky/DB.pm')
| -rw-r--r-- | bucky2/lib/Bucky/DB.pm | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/bucky2/lib/Bucky/DB.pm b/bucky2/lib/Bucky/DB.pm index bca92b7..9690f40 100644 --- a/bucky2/lib/Bucky/DB.pm +++ b/bucky2/lib/Bucky/DB.pm @@ -39,6 +39,26 @@ sub insert } sub update { + my ($self, $type, $opt) = @_; + my $criteria = $opt->{'criteria'}; + my $record = $opt->{'record'}; + + $type = $DB_LOOKUP->{$type}; + return unless $type && ref($record) eq "HASH" && scalar keys %$record; + my $key_values = []; + foreach my $key (keys %$record) + { + push @$key_values, $key . "=" . $self->quote($record->{$key}); + } + my $key_value_string = join ",", @$key_values; + return unless length $key_value_string; + + my $criteria_string = $self->criteria($criteria); + return unless length $criteria_string; + + my $sql = "UPDATE $type SET $key_value_string WHERE $criteria_string"; + + $self->execute($sql); } sub select { @@ -103,6 +123,7 @@ sub execute my ($self, $sql) = @_; my $sth = $self->dbh->prepare($sql); $sth->execute; + return $sth; } sub quote |
