Provided by: libdbix-bulkloader-mysql-perl_1.006-2_all bug

NAME

       DBIx::BulkLoader::Mysql - Perl extension for mysql bulk loading

SYNOPSIS

         use DBIx::BulkLoader::Mysql;

         # non repeating portion of the insert statement
         my $insert='insert into bulk_insert (col_a,col_b,col_c) values ';

         # repeating portion of the insert statement
         my $placeholders='(?,?,?)';

         # how many rows to buffer until insert is called
         my $bulk_insert_count=5;

         # db connection
         my $dbh=DBI->connect(db connection info here);
         my $placeholder_count=3;

         my ($bulk,$error)=DBIx::BulkLoader::Mysql->new(
                       dbh=>$dbh
                       ,sql_insert=>$insert
                       ,placeholders=>$placeholders
          );
          die $error unless $bulk;

          for( 1 .. 50 ) {
            $bulk->insert(qw(a b c));
          }
          # inserted 50 rows at once

          $bulk->insert(qw(l l x));
          # inserted 0 rows

          $bulk->insert(qw(l l x));
          # inserted 0 rows

          $bulk->flush;
          # inserted 2 rows 1 at a time

DESCRIPTION

       Simple buffering bulk loader interface for mysql.

   EXPORT
       None.

   OO Methods
       This section covers the OO methods for this package.

       •   my ($bulk,$error)=DBIx::BulkLoader::Mysql->new(%hash);

           Package constructor.

                   $bulk is undef on error
                   $error explains why $bulk is undef

           Constructor options

                           dbh=>$dbh
                            Sets the DBH object

                           sql_insert=>$insert
                            Contains the body of the sql statement minus the
                            placeholder segment.

                           placeholders=>$placeholders
                            Placeholder segment of the sql statement

                           placeholder_count=>3
                            Optional argument
                             If you get strange insert counts or dbi bails
                             set this option manually

                           bulk_insert_count=>50
                            Optional argument
                             Sets the number of rows to buffer for insert.

                           prepare_args=>{}
                            Optional argument
                             Arguments to be passed to $dbh->prepare
                             See DBD::mysql

       •   $bulk->flush;

           Empties the placeholder buffer

       •   $bulk->insert($x,$y,$z);

           Inserts the placeholder arguments onto the buffer stack. This does not cause an
           insert, unless the total number of rows is the same as the constructor call
           "bulk_insert_count=>50".

       •   my $columns=$bulk->get_placeholder_count;

           Gets the total number of column placeholders.

       •   my $buffer_size=$bulk->get_buffer_size;

           Gets the total size of the array used for insert.

       •   my $sql_single=$bulk->single_sql;

           Gets the raw sql statement used for single row inserts.

       •   my $bulk_sql=$bulk->bulk_sql;

           Gets the raw sql statement used for bulk row inserts.

       •   my $single_sth=$bulk->get_prepared_single_sth;

           Gets the prepared statement handle for single row inserts.

       •   my $bulk_sth=$bulk->get_prepared_bulk_sth;

           Gets the prepared statement handle for bulk row inserts.

       •   my @buffer=$bulk->get_buffered_data;

           Returns a list containing the current buffered data

SEE ALSO

       DBI, DBD::mysql

Source Forge Project

       If you find this software usefil please donate to the Source Forge Project.

       DBIx BulkLoader Mysql <https://sourceforge.net/projects/dbix-bulkloader/>

AUTHOR

       Michael Shipper

COPYRIGHT AND LICENSE

       Copyright (C) 2010 by Michael Shipper

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of
       Perl 5 you may have available.