Apache-JAF
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/JAF/DBI.pm view on Meta::CPAN
sub _update_sql {
my ($self, $options) = @_;
my $cols = $options->{cols} || $self->{cols};
my $criteria = $options->{criteria} || $self->{key};
return "update $self->{table} set ".(join ',', map {"$_ = ?"} @$cols)." where ".(ref $criteria eq 'ARRAY' ? join ' and ', map {"$_ = ?"} @$criteria : "$criteria = ?");
}
sub update {
my ($self, $params, $options) = @_;
$options->{criteria} ||= $self->{key};
my @cols = $options && $options->{cols} ? @{$options->{cols}} : @{$self->{cols}};
@cols = grep {exists $params->{$_} && (!ref $self->{key} || $self->{key} ne $_)} @cols;
my $sql = $options->{sql} || $self->_update_sql({%$options, cols => \@cols});
my $return = $self->{dbh}->do($sql, undef, (map {$params->{$_}} @cols), ref ($options->{criteria}) eq 'ARRAY' ? map {$params->{$_}} @{$options->{criteria}} : $params->{$options->{criteria}});
$return ? $self->message(defined $options->{message} ? $options->{message} : $self->{update_message}) : $self->error($self->{dbh}->errstr());
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.509 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )