Nile

 view release on metacpan or  search on metacpan

lib/Nile/DBI.pm  view on Meta::CPAN

    my $default = $app->config->get("dbi");
    $default ||= +{};

    %arg = (%{$default}, %arg);
    
    $arg{driver} ||= "mysql";
    $arg{dsn} ||= "";
    $arg{host} ||= "localhost";
    $arg{port} ||= 3306;
    $arg{attr} ||= +{};
    #$arg{attr} = {RaiseError => 0, PrintError => 0, mysql_enable_utf8 => 1}

    if (!$arg{name}) {
        $app->abort("Database error: Empty database name.");
    }

    #$self->dbh->disconnect if ($self->dbh);

    if ($arg{driver} =~ m/ODBC/i) {
        $dbh = DBI->connect("DBI:ODBC:$arg{dsn}", $arg{user}, $arg{pass}, $arg{attr})
                or $self->db_error("$DBI::errstr, DSN: $arg{dsn}");
    }
    else {
        $arg{dsn} ||= "DBI:$arg{driver}:database=$arg{name};host=$arg{host};port=$arg{port}";
        $dbh = DBI->connect($arg{dsn}, $arg{user}, $arg{pass}, $arg{attr}) 
                or $self->db_error("$DBI::errstr, DSN: $arg{dsn}");
    }

    $self->dbh($dbh);
    return $dbh;

    #$dbh->{'mysql_enable_utf8'} = 1;
    #$dbh->do('SET NAMES utf8');
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=head2 disconnect()
    
    $app->db->disconnect;

Disconnect from this connection handle.

=cut



( run in 0.261 second using v1.01-cache-2.11-cpan-00829025b61 )