NAME

DBIx::Custom::Result - Result of select statement

SYNOPSIS

  # Result
  my $result = $dbi->select(table => 'book');

  # Fetch a row and put it into array reference
  while (my $row = $result->fetch) {
    my $author = $row->[0];
    my $title  = $row->[1];
  }
  
  # Fetch only a first row and put it into array reference
  my $row = $result->fetch_one;
  
  # Fetch all rows and put them into array of array reference
  my $rows = $result->fetch_all;

  # Fetch a row and put it into hash reference
  while (my $row = $result->fetch_hash) {
    my $title  = $row->{title};
    my $author = $row->{author};
  }
  
  # Fetch only a first row and put it into hash reference
  my $row = $result->fetch_hash_one;
  my $row = $result->one; # Alias for "fetch_hash_one"
  
  # Fetch all rows and put them into array of hash reference
  my $rows = $result->fetch_hash_all;
  my $rows = $result->all; # Alias for "fetch_hash_all"

ATTRIBUTES

dbi

  my $dbi = $result->dbi;
  $result = $result->dbi($dbi);

DBIx::Custom object.

sth

  my $sth = $reuslt->sth
  $result = $result->sth($sth);

Statement handle of DBI.

METHODS

DBIx::Custom::Result inherits all methods from Object::Simple and implements the following new ones.

all

  my $rows = $result->all;

Same as fetch_hash_all.

column

  my $column = $result->column;

Get first column's all values.

  my $names = $dbi->select('name', table => 'book')->column;

fetch

  my $row = $result->fetch;

Fetch a row and put it into array reference.

fetch_all

  my $rows = $result->fetch_all;

Fetch all rows and put them into array of array reference.

fetch_one

  my $row = $result->fetch_one;

Fetch only a first row and put it into array reference, and finish statment handle.

fetch_hash

  my $row = $result->fetch_hash;

Fetch a row and put it into hash reference.

fetch_hash_all

  my $rows = $result->fetch_hash_all;

Fetch all rows and put them into array of hash reference.

fetch_hash_one

  my $row = $result->fetch_hash_one;

Fetch only a first row and put it into hash reference, and finish statment handle.

fetch_hash_multi

  my $rows = $result->fetch_hash_multi(5);
  

Fetch multiple rows and put them into array of hash reference.

fetch_multi

  my $rows = $result->fetch_multi(5);
  

Fetch multiple rows and put them into array of array reference.

filter

  $result->filter(title  => sub { uc $_[0] }, author => 'to_upper');
  $result->filter([qw/title author/] => 'to_upper');

Set filter for column. You can use subroutine or filter name as filter. This filter is executed after type_rule filter.

  my $header = $result->header;

Get header column names.

one

  my $row = $result->one;

Alias for fetch_hash_one.

stash

  my $stash = $result->stash;
  my $foo = $result->stash->{foo};
  $result->stash->{foo} = $foo;

Stash is hash reference to save some data.

type_rule

  # Merge type rule
  $result->type_rule(
    # DATE
    9 => sub { ... },
    # DATETIME or TIMESTAMP
    11 => sub { ... }
  );

  # Replace type rule(by reference)
  $result->type_rule([
    # DATE
    9 => sub { ... },
    # DATETIME or TIMESTAMP
    11 => sub { ... }
  ]);

This is same as DBIx::Custom's type_rule's <from>.

type_rule_off

  $result = $result->type_rule_off;

Turn from1 and from2 type rule off. By default, type rule is on.

type_rule_on

  $result = $result->type_rule_on;

Turn from1 and from2 type rule on. By default, type rule is on.

type_rule1_off

  $result = $result->type_rule1_off;

Turn from1 type rule off. By default, type rule is on.

type_rule1_on

  $result = $result->type_rule1_on;

Turn from1 type rule on. By default, type rule is on.

type_rule2_off

  $result = $result->type_rule2_off;

Turn from2 type rule off. By default, type rule is on.

type_rule2_on

  $result = $result->type_rule2_on;

Turn from2 type rule on. By default, type rule is on.

value

  my $value = $result->value;

Get first column's first value.

  my $count = $dbi->select('count(*)')->value;