---
name: "DBIx::BulkLoader::Mysql"
section: "3pm"
platform: "linux"
package: "libdbix-bulkloader-mysql-perl"
version: "1.006-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/DBIx::BulkLoader::Mysql"
---

# DBIx::BulkLoader::Mysql(3pm)

Perl extension for mysql bulk loading

## 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.
