New importer, Nat. Geo. Wild.
[nonametv.git] / lib / SQLAbstraction / mysql.pm
blob39adb5e6af0d09e7ce66594eca92a6dde82cb6f0
1 package SQLAbstraction::mysql;
3 use strict;
5 =head1 NAME
7 SQLAbstraction::mysql - Implementation of SQLAbstraction for mysql.
9 =cut
11 use SQLAbstraction;
13 use base qw(SQLAbstraction);
14 use fields qw( dbhost dbname dbuser dbpassword );
16 use Carp;
18 use UTF8DBI;
20 sub new {
21 my SQLAbstraction::mysql $self = shift;
22 my( $p, $first ) = @_;
24 if( not ref $self ) {
25 $self = fields::new($self);
27 $self->SUPER::new( $p, 1 );
29 my @required_params = qw( dbhost dbname dbuser dbpassword );
31 my %optional_params = ( );
33 # Initialize new properties.
34 $self->init( $p, \@required_params, \%optional_params );
36 $self->check_unknown( $p, $first );
38 return $self;
41 sub Connect {
42 my SQLAbstraction::mysql $self = shift;
44 my $host = $self->{dbhost};
45 my $database = $self->{dbname};
47 my $dsn = "DBI:mysql:database=$database;host=$host";
49 $self->{dbh} = UTF8DBI->connect($dsn, $self->{dbuser}, $self->{dbpassword})
50 or die "Cannot connect: " . $DBI::errstr;
52 $self->{dbh}->do("set character set utf8");
53 $self->{dbh}->do("set names utf8");
55 return 1;
58 sub last_inserted_id {
59 my SQLAbstraction::mysql $self = shift;
61 return $self->{dbh}->{'mysql_insertid'};