|
NAMEDBIx::Custom::Result - Result of select statementSYNOPSIS# 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" ATTRIBUTESdbimy $dbi = $result->dbi; $result = $result->dbi($dbi); DBIx::Custom object. sthmy $sth = $reuslt->sth $result = $result->sth($sth); Statement handle of DBI. METHODSDBIx::Custom::Result inherits all methods from Object::Simple and implements the following new ones.allmy $rows = $result->all; Same as fetch_hash_all. fetchmy $row = $result->fetch; Fetch a row and put it into array reference. fetch_allmy $rows = $result->fetch_all; Fetch all rows and put them into array of array reference. fetch_onemy $row = $result->fetch_one; Fetch only a first row and put it into array reference, and finish statement handle. fetch_hashmy $row = $result->fetch_hash; Fetch a row and put it into hash reference. fetch_hash_allmy $rows = $result->fetch_hash_all; Fetch all rows and put them into array of hash reference. fetch_hash_onemy $row = $result->fetch_hash_one; Fetch only a first row and put it into hash reference, and finish statement handle. fetch_hash_multimy $rows = $result->fetch_hash_multi(5); Fetch multiple rows and put them into array of hash reference. fetch_multimy $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. flatmy @list = $result->flat; All values is added to flatten list. my @list = $dbi->select(['id', 'title'])->flat; "flat" method return the following data. (1, 'Perl', 2, 'Ruby') You can create key-value pair easily. my %titles = $dbi->select(['id', 'title'])->flat; kvmy $key_value = $result->kv; Get key-value pairs. my $books = $dbi->select(['id', 'title', 'author'])->kv; If "all" method return the following data: [ {id => 1, title => 'Perl', author => 'Ken'}, {id => 2, title => 'Ruby', author => 'Taro'} ] "kv" method return the following data. { 1 => {title => 'Perl', author => 'Ken'}, 2 => {title => 'Ruby', author => 'Taro'} } First column value become key. kvsmy $key_values = $result->kvs; Get key-values pairs. my $books = $dbi->select(['author', 'title', 'price'])->kvs; If "all" method return the following data: [ {author => 'Ken', title => 'Perl', price => 1000}, {author => 'Ken', title => 'Good', price => 2000}, {author => 'Taro', title => 'Ruby', price => 3000} {author => 'Taro', title => 'Sky', price => 4000} ] "kvs" method return the following data. { Ken => [ {title => 'Perl', price => 1000}, {title => 'Good', price => 2000} ], Taro => [ {title => 'Ruby', price => 3000}, {title => 'Sky', price => 4000} ] } headermy $header = $result->header; Get header column names. onemy $row = $result->one; Alias for "fetch_hash_one". stashmy $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. valuemy $value = $result->value; Get first column's first value. my $count = $dbi->select('count(*)', table => 'book')->value; This is almost same as the following one. my $count = $dbi->select('count(*)')->fetch_one->[0]; valuesmy $values = $result->values; Get first column's values. my $tables = $dbi->select('show tables')->values; This is same as the following one. my $rows = $dbi->select('show tables')->fetch_all; my $tables = [map { $_->[0] } @$rows];
Visit the GSP FreeBSD Man Page Interface. |