DBIx-DBO
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/DBIx/DBO/Query.pm view on Meta::CPAN
$query->update(department => 'Tech');
$query->update(salary => { FUNC => '? * 1.10', COL => 'salary' }); # 10% raise
Updates every row in the query with the new values specified.
Returns the number of rows updated or C<'0E0'> for no rows to ensure the value is true,
and returns false if there was an error.
=cut
sub update {
my $me = shift;
my @update = $me->{DBO}{dbd_class}->_parse_set($me, @_);
my $sql = $me->{DBO}{dbd_class}->_build_sql_update($me, @update);
$me->{DBO}{dbd_class}->_do($me, $sql, undef, $me->{DBO}{dbd_class}->_bind_params_update($me));
}
=head3 C<sql>
my $sql = $query->sql;
lib/DBIx/DBO/Row.pm view on Meta::CPAN
Updates the current row with the new values specified.
Returns the number of rows updated or C<'0E0'> for no rows to ensure the value is true,
and returns false if there was an error.
Note: If C<LIMIT> is supported on C<UPDATE>s then only the first matching row will be updated
otherwise ALL rows matching the current row will be updated.
=cut
sub update {
my $me = shift;
croak "Can't update an empty row" unless $$me->{array};
my @update = $$me->{DBO}{dbd_class}->_parse_set($me, @_);
local $$me->{build_data} = $$me->{DBO}{dbd_class}->_build_data_matching_this_row($me);
$$me->{build_data}{limit} = ($me->config('LimitRowUpdate') and $me->tables == 1) ? [1] : undef;
my $sql = $$me->{DBO}{dbd_class}->_build_sql_update($me, @update);
my $rv = $$me->{DBO}{dbd_class}->_do($me, $sql, undef, $$me->{DBO}{dbd_class}->_bind_params_update($me));
$$me->{DBO}{dbd_class}->_reset_row_on_update($me, @update) if $rv and $rv > 0;
return $rv;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.942 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )