Anansi::Database - A manager for database interaction.
my $OBJECT = Anansi::Database->new(); my $component = $OBJECT->addComponent( undef, DRIVER => 'MySQL', ); if(defined($component)) { if($OBJECT->channel( 'CONNECT', $component, DATABASE => 'someDatabase', PASSWORD => 'somePassword', USERNAME => 'someUser', )) { my $records = $OBJECT->channel( 'STATEMENT', $component, INPUT => [ { DEFAULT => '0', NAME => 'yetAnotherField', } ], SQL => 'SELECT some_field, another_field FROM some_table WHERE yet_another_field = ?;', yetAnotherField => 123, ); if(defined($records)) { if(ref($records) =~ /^ARRAY$/i) { my $record = 0; foreach my $record (@{$records}) { next if(ref($record) !~ /^HASH$/i); print "\n" if(0 < $record); my $field = 0; foreach my $key (keys(%{$record})) { print ', ' if(0 < $field); print '"'.$key.'" = "'.${record}{$key}.'"'; $field++; } $record++; } print "\n"; } } } }
Manages database interactions allowing the creation, interrogation, modification and removal of database structures and table records.
See Anansi::Class for details. A parent module of Anansi::Singleton.
See Anansi::Class::DESTROY for details. Overridden by Anansi::Singleton::DESTROY.
See Anansi::Class::finalise for details. A virtual method.
See Anansi::Class::implicate for details. A virtual method.
See Anansi::Class::import for details.
See Anansi::Class::initialise for details. Overridden by Anansi::ComponentManager::initialise. A virtual method.
See Anansi::Class::new for details. Overridden by Anansi::Singleton::new.
See Anansi::Class::old for details.
See Anansi::Class::used for details.
See Anansi::Class::uses for details.
See Anansi::Class::using for details.
See Anansi::ComponentManager for details. A parent module of Anansi::Database.
See Anansi::Singleton for details. A parent module of Anansi::ComponentManager.
See Anansi::ComponentManager::addChannel for details.
See Anansi::ComponentManager::addComponent for details.
See Anansi::ComponentManager::channel for details.
See Anansi::ComponentManager::component for details.
See Anansi::ComponentManager::componentIdentification for details.
See Anansi::ComponentManager::components for details.
See Anansi::ComponentManager::initialise for details. Overrides Anansi::Class::initialise. A virtual method.
See Anansi::ComponentManager::priorities for details.
See Anansi::ComponentManager::reinitialise for details. Overrides Anansi::Singleton::reinitialise. A virtual method.
See Anansi::ComponentManager::removeChannel for details.
See Anansi::ComponentManager::removeComponent for details.
See Anansi::Singleton::DESTROY for details. Overrides Anansi::Class::DESTROY.
See Anansi::Singleton::fixate for details. A virtual method.
See Anansi::Singleton::new for details. Overrides Anansi::Class::new.
See Anansi::Singleton::reinitialise for details. Overridden by Anansi::ComponentManager::reinitialise. A virtual method.
my $component = Anansi::Database->addComponent(); my $connection = Anansi::Database->connect( undef, $component, DATABASE => 'someDatabase', PASSWORD => 'somePassword', USERNAME => 'someUsername', ); if(!defined($connection)); my $handle = DBI->connect('DBI:mysql:someDatabase', 'someUsername', 'somePassword'); my $component = Anansi::Database->addComponent(); my $connection = Anansi::Database->channel( 'CONNECT', $component, HANDLE => $handle, ); if(!defined($connection));
Either an object or a string of this namespace.
The abstract identifier of a subroutine.
The name associated with the component.
Named parameters.
Attempts to load the appropriate database driver and connect to a database. Returns 1 (one) on success and 0 (zero) on failure. Returns an undef when an error occurs.
my $component = Anansi::Database->addComponent(); my $connection = Anansi::Database->connect(undef, $component); if(defined($connection)) ( Anansi::Database->disconnect(undef, $component); } my $component = Anansi::Database->addComponent(); my $connection = Anansi::Database->channel('CONNECT', $component); if(defined($connection)) { Anansi::Database->channel('DISCONNECT', $component) }
Attempts to disconnect from a database. Returns 1 (one) on success and 0 (zero) on failure. Returns an undef when an error occurs.
my $result = Anansi::Database::statement( $OBJECT, undef, INPUT => [ 'hij' => 'someParameter', 'klm' => 'anotherParameter' ], SQL => 'SELECT abc, def FROM some_table WHERE hij = ? AND klm = ?;', STATEMENT => 'someStatement', someParameter => 123, anotherParameter => 456 ); my $result = Anansi::Database::channel( $OBJECT, 'STATEMENT', STATEMENT => 'someStatement', someParameter => 234, anotherParameter => 'abc' ); my $result = $OBJECT->statement( undef, STATEMENT => 'someStatement', someParameter => 345, anotherParameter => 789 ); my $result = $OBJECT->channel( 'STATEMENT', STATEMENT => 'someStatement', someParameter => 456, anotherParameter => 'def' );
An array of hashes with each element corresponding to an equivalent ? (Question mark) found within the supplied SQL. If the number of elements is not the same as the number of ? (Question mark)s found in the statement then the statement is invalid. See the Anansi::DatabaseComponent::bind method for details.
The SQL statement to execute.
The name associated with a prepared SQL statement. This is interchangeable with the SQL parameter but helps to speed up repetitive database interaction.
Attempts to execute the supplied SQL with the supplied named parameters. Either returns an array of retrieved record data or a 1 (one) on success and a 0 (zero) on failure as appropriate to the SQL statement. Returns an undef when an error occurs.
This module is designed to make it simple, easy and quite fast to code your design in perl. If for any reason you feel that it doesn't achieve these goals then please let me know. I am here to help. All constructive criticisms are also welcomed.
Kevin Treleaven <kevin AT treleaven DOT net>
To install Anansi::Database, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Anansi::Database
CPAN shell
perl -MCPAN -e shell install Anansi::Database
For more information on module installation, please visit the detailed CPAN module installation guide.