Anansi-Database-MySQL

 view release on metacpan or  search on metacpan

lib/Anansi/Database/MySQL.pm  view on Meta::CPAN

=over 4

=item AutoCommit I<(String, Optional)>

Defines whether the MySQL driver automatically saves any changes made to the
B<DATABASE>.  A value of B<1> I<(one)> means changes will be saved, a value of
B<0> I<(zero)> means changes will need to be manually saved.  Changes are not
saved by default.

=item DATABASE I<(String, Optional)>

The name of the MySQL database.  A value of B<mysql> is used by default.

=item HANDLE I<(DBI::db, Optional)>

The database handle of an existing database connection.

=item HOSTNAME I<(String, Optional)>

The IP address of the computer where the MySQL B<DATABASE> is hosted.  A value
of B<127.0.0.1> is used by default.

=item PASSWORD I<(String, Optional)>

The password of the B<USERNAME> that is accessing the MySQL database.  A value
of B<undef> is used by default.

=item PORT I<(String, Optional)>

The IP address port number of the computer where the MySQL B<DATABASE> is
hosted.  A value of B<3306> I<(three three zero six)> is used by default.

=item PrintError I<(String, Optional)>

Defines whether the MySQL driver will use the B<warn> function.  A value of B<1>
I<(one)> means errors will be output using B<warn>, a value of B<0> I<(zero)>
means errors will not be output in this way.  Errors are output by default.

=item RaiseError I<(String, Optional)>

Defines whether the MySQL driver will use the B<die> function.  A value of B<1>
I<(one)> means errors will be output using B<die>, a value of B<0> I<(zero)>
means errors will not be output in this way.  Errors are output by default.

=item USERNAME I<(String, Optional)>

The user that is accessing the MySQL database.  A value of B<undef> is used by
default.

=back

=back

Overrides L<Anansi::DatabaseComponent::connect|Anansi::DatabaseComponent/"connect">.

=cut


sub connect {
    my ($self, $channel, %parameters) = @_;
    return $self->SUPER::connect(
        undef,
        INPUT => [
            {
                INPUT => [
                    'dbi:mysql:database=', {
                        DEFAULT => 'mysql',
                        NAME => 'DATABASE',
                        REF => '',
                    },
                    ';host=', {
                        DEFAULT => '127.0.0.1',
                        NAME => 'HOSTNAME',
                        REF => '',
                    },
                    ';port=', {
                        DEFAULT => '3306',
                        NAME => 'PORT',
                        REF => '',
                    }
                ],
                REF => '',
            }, {
                NAME => 'USERNAME',
                REF => '',
            }, {
                NAME => 'PASSWORD',
                REF => '',
            }, {
                INPUT => [
                    {
                        DEFAULT => 0,
                        NAME => 'AutoCommit',
                        REF => '',
                    }, {
                        DEFAULT => 1,
                        NAME => 'PrintError',
                        REF => '',
                    }, {
                        DEFAULT => 1,
                        NAME => 'RaiseError',
                        REF => '',
                    }
                ],
                REF => 'HASH',
            }
        ],
        (%parameters),
    );
}


Anansi::Component::addChannel('Anansi::Database::MySQL', 'CONNECT' => 'connect');


=head2 validate

    if(1 == Anansi::Database::MySQL::validate($OBJECT, undef));

    if(1 == Anansi::Database::MySQL::channel($OBJECT, 'VALIDATE_AS_APPROPRIATE'));

    if(1 == Anansi::Database::MySQL->validate(undef));

    if(1 == Anansi::Database::MySQL->channel('VALIDATE_AS_APPROPRIATE'));

    if(1 == $OBJECT->validate(undef, DRIVER => 'MySQL'));

    if(1 == $OBJECT->channel('VALIDATE_AS_APPROPRIATE', DRIVER => 'MySQL'));

    if(1 == Anansi::Database::MySQL->validate(undef, DRIVER => 'MySQL'));

    if(1 == Anansi::Database::MySQL->channel('VALIDATE_AS_APPROPRIATE', DRIVER => 'MySQL'));

=over 4

=item self I<(Blessed Hash B<or> String, Required)>

Either an object or a string of this namespace.

=item channel I<(String, Required)>

The abstract identifier of a subroutine.

=item parameters I<(Hash, Optional)>

Named parameters.

=over 4

=item DRIVER

When the B<DRIVER> parameter is defined as I<MySQL> then this database driver
component will be used otherwise an attempt will be made to use this driver.

=back

=back

Overrides L<Anansi::DatabaseComponent::validate|Anansi::DatabaseComponent/"validate">.

=cut


sub validate {
    my ($self, $channel, %parameters) = @_;
    $parameters{DRIVERS} = 'MySQL';
    return $self->SUPER::validate(undef, (%parameters));
}


Anansi::Component::addChannel('Anansi::Database::MySQL', 'VALIDATE_AS_APPROPRIATE' => 'validate');


=head1 NOTES

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.

=cut


=head1 AUTHOR

Kevin Treleaven <kevin I<AT> treleaven I<DOT> net>

=cut


1;



( run in 0.803 second using v1.01-cache-2.11-cpan-39bf76dae61 )