NAME
DBIx::DBO::Table - An OO interface to SQL queries and results. Encapsulates a table in an object.
SYNOPSIS
# Create a Table object
my $table = $dbo->table('my_table');
# Get a column reference
my $column = $table ** 'employee_id';
# Quickly display my employee id
print $table->fetch_value('employee_id', name => 'Vernon');
# Insert a new row into the table
$table->insert(employee_id => 007, name => 'James Bond');
# Remove rows from the table where the name IS NULL
$table->delete(name => undef);
METHODS
new
DBIx::DBO::Table->new($dbo, $table);
DBIx::DBO::Table->new($dbo, [$schema, $table]);
DBIx::DBO::Table->new($dbo, $table_object);
Create and return a new Table
object. Tables can be specified by their name or an arrayref of schema and table name or another Table
object.
tables
Return a list of Table
objects, which will always be this Table
object.
column
$table->column($column_name);
$table ** $column_name;
Returns a reference to a column for use with other methods. The **
method is a shortcut for the column
method.
fetch_row
$table->fetch_row(%where);
Fetch the first matching row from the table returning it as a DBIx::DBO::Row object.
The %where
is a hash of field/value pairs. The value can be a SCALAR ref, which will be used without quoting.
$someone = $table->fetch_row(name => \'NOT NULL', age => 21, join_date => \'CURDATE()', end_date => undef);
fetch_value
$table->fetch_value($column, %where);
Fetch the first matching row from the table returning the value in one column.
fetch_hash
$table->fetch_hash(%where);
Fetch the first matching row from the table returning it as a hashref.
fetch_column
$table->fetch_column($column, %where);
Fetch all matching rows from the table returning an arrayref of the values in one column.
insert
$table->insert(name => 'Richard', age => 103);
Insert a row into the table. Returns true on success or undef
on failure.
On supporting databases you may also use $table->last_insert_id
to retreive the autogenerated ID (if there was one) from the last inserted row.
delete
$table->delete(name => 'Richard', age => 103);
Delete all rows from the table matching the criteria. Returns the number of rows deleted or undef
on failure.
Common Methods
These methods are accessible from all DBIx::DBO* objects.
dbh
The read-write DBI
handle.
rdbh
The read-only DBI
handle, or if there is no read-only connection, the read-write DBI
handle.
do
$dbo->do($statement) or die $dbo->dbh->errstr;
$dbo->do($statement, \%attr) or die $dbo->dbh->errstr;
$dbo->do($statement, \%attr, @bind_values) or die ...
This provides access to DBI->do method. It defaults to using the read-write DBI
handle.
config
$table_setting = $table->config($option);
$table->config($option => $table_setting);
Get or set the Table
config settings. When setting an option, the previous value is returned. When getting an option's value, if the value is undefined, the DBIx::DBO's value is returned.
See "Available_config_options" in DBIx::DBO.
TODO LIST
Add a multi_insert method for extended INSERTs.