use strict; use warnings; use DBI; my $dbh = DBI->connect('dbi:mysql:krb','mortis',''); die $DBI::errstr unless $dbh; if (@ARGV) { my $img_file = 'test.jpg'; my $img_data = getFile($img_file); my $sql = 'INSERT INTO foo (data) VALUES (?)'; unless ($dbh->do($sql,undef,$img_data)) { die "Error executing sql: '$sql' : $DBI::errstr : ",$dbh->errstr,"\n"; } print "DATA INSERTED\n"; } my $resultSet = $dbh->selectall_arrayref('SELECT * FROM foo'); my $imgData = $resultSet->[0]->[0]; writeFile('test2.jpg',$imgData); $dbh->disconnect; sub getFile { my($file) = @_; my $fh; unless (open $fh, "<", $file) { die "Error opening $file : $!\n"; } my $data; { local $/ = undef; $data = <$fh>; } close $fh; return $data; } sub writeFile { my($file,$data) = @_; my $fh; unless (open $fh, ">", $file) { die "Error opening $file : $!\n"; } print $fh $data; close $fh; }