DBIx::DataSource::mysql - MySQL driver for DBIx::DataSource


DBIx-DataSource documentation Contained in the DBIx-DataSource distribution.

Index


Code Index:

NAME

Top

DBIx::DataSource::mysql - MySQL driver for DBIx::DataSource

SYNOPSIS

Top

  use DBIx::DataSource;

  use DBIx::DataSource qw( create_database drop_database );

  create_database( "dbi:mysql:$database", $username, $password )
    or warn $DBIx::DataSource::errstr;

  create_database( "dbi:mysql:database=$database;host=$hostname;port=$port",
                   $username, $password )
    or warn $DBIx::DataSource::errstr;

  drop_database( "dbi:mysql:$database", $username, $password )
    or warn $DBIx::DataSource::errstr;

  drop_database( "dbi:mysql:database=$database;host=$hostname;port=$port",
                  $username, $password )
    or warn $DBIx::DataSource::errstr;

DESCRIPTION

Top

This is the MySQL driver for DBIx::DataSource.

AUTHOR

Top

Ivan Kohler <ivan-dbix-datasource@420.am>

COPYRIGHT

Top

BUGS

Top

SEE ALSO

Top

DBIx::DataSource::Driver, DBIx::DataSource, DBD::mysql, DBI


DBIx-DataSource documentation Contained in the DBIx-DataSource distribution.
package DBIx::DataSource::mysql;

use strict;
use vars qw($VERSION @ISA);
use DBIx::DataSource::Driver;
@ISA = qw( DBIx::DataSource::Driver );

$VERSION = '0.01';

sub parse_dsn {
  my( $class, $action, $dsn ) = @_;
  $dsn =~ s/^(dbi:(\w*?)(?:\((.*?)\))?:)//i #nicked from DBI->connect
                        or '' =~ /()/; # ensure $1 etc are empty if match fails
  my $prefix = $1 or die "can't parse data source: $dsn";

  my $database;
  if ( $dsn =~ s/(^|[;:])(db|dbname|database)=([^=:;]+)([;:]|$)/$1$2=$4/ ) {
    $database = $3;
  } else {
    $database = $dsn;
    $dsn = '';
  }

  ( "$prefix$dsn", "\U$action\E DATABASE $database" );
}

1;