DBIx-ActiveRecord

 view release on metacpan or  search on metacpan

lib/DBIx/ActiveRecord/Arel.pm  view on Meta::CPAN

    $s;
}

sub insert {
    my ($self, $hash, $columns) = @_;
    my $o = $self->clone;
    $o->{query} = DBIx::ActiveRecord::Arel::Query::Insert->new($self, $hash, $columns);
    $o;
}

sub update {
    my ($self, $hash, $columns) = @_;
    my $o = $self->clone;
    $o->{query} = DBIx::ActiveRecord::Arel::Query::Update->new($self, $hash, $columns);
    $o;
}

sub delete {
    my ($self) = @_;
    my $o = $self->clone;
    $o->{query} = DBIx::ActiveRecord::Arel::Query::Delete->new($self);

lib/DBIx/ActiveRecord/Model.pm  view on Meta::CPAN

    $self->_record_timestamp(INSERT_RECORD_TIMESTAMPS);
    my $arel = $s->{arel}->insert($self->to_hash, $self->_global->{columns});
    my $sth = $self->dbh->prepare($arel->to_sql);
    my $res = $sth->execute($arel->binds) || croak $sth->errstr;

    my $insert_id = $sth->{'insertid'} || $self->dbh->{'mysql_insertid'};
    $self->{-set}->{$self->_global->{primary_keys}->[0]} = $insert_id if $insert_id;
    $res;
}

sub update {
    my ($self) = @_;
    return if !%{$self->{-set}};
    return if !$self->in_storage;

    my $s = $self->_pkey_scope;
    $self->_record_timestamp(UPDATE_RECORD_TIMESTAMPS);
    my $arel = $s->{arel}->update($self->{-set}, $self->_global->{columns});
    my $sth = $self->dbh->prepare($arel->to_sql);
    $sth->execute($arel->binds) || croak $sth->errstr;
}

lib/DBIx/ActiveRecord/Scope.pm  view on Meta::CPAN

    my $s = $self->scoped;
    $s->{arel} = $s->{arel}->$method(@_);
    $s;
}

sub scoped_instance {
    my $self = shift;
    ref $self ? $self : $self->scoped;
}

sub update_all {
    my ($self, $sets) = @_;
    $self = $self->scoped;
    my $s = $self->{arel}->update($sets);
    my $sth = $self->{model}->dbh->prepare($s->to_sql);
    $sth->execute($s->binds) || croak $sth->errstr;
}

sub delete_all {
    my ($self) = @_;
    $self = $self->scoped;



( run in 0.570 second using v1.01-cache-2.11-cpan-49f99fa48dc )