I'm having issues inserting files into a BLOB field in MySQL, using something similar to this;

binmode($filehandle);
my $file_str;
{
  local( $/, undef ) ;
  $file_str = <$filehandle>;
}
my $statement = "
  INSERT INTO 'files' (file_name, file)
  VALUES (?,?,?)
";
my $sth = $dbh->prepare($statement);
$sth->execute('my.pdf',$file_str);


The problem is that files bigger than 64K are being truncated on their insert into the database (i.e. the maximum BLOB length in the database is 64K). The global max_allowed_packet variable is set to 16776192, so that doesn't seem to be the culprit, and I don't know of any other limitations in MySQL that would limit the size of the insert.

I'm tearing my hair out with this, and after wading through countless dead-ends I've pretty much given up!

Is it possible this is a DBI problem, or is it bound to be a MySQL issue? Any clues, from any direction, would be very gratefully received.



Cheers,


Chris


PS Perl 5.8.8, DBI v1.607, MySQL 5.1, if that makes any difference

Reply via email to