#!/usr/bin/perl -w use strict; use DBI; use MIME::Base64; my $dbh = DBI->connect('DBI:SQLite:dbname=test_blob.db', '', ''); $dbh->do('CREATE TABLE test_blob( a text , b text , Bindata BLOB )'); my $bindata = "ABC" . qq|\x00| . "DEF"; #added $bindata = encode_base64($bindata); my $sth1 = $dbh->prepare('INSERT INTO test_blob VALUES(?,?,?)' ); my @ar = qw|foo doog|; $sth1->execute(@ar, $bindata); my $sth2 = $dbh->prepare('SELECT Bindata FROM test_blob'); $sth2->execute(); my $row = $sth2->fetch(); my $fetched_data = $row->[0]; $sth2->finish(); $dbh->disconnect; print decode_base64($fetched_data); 1; #### .schema test_blob CREATE TABLE test_blob( a text , b text , Bindata BLOB ); sqlite> select * from test_blob; foo|doog|QUJDAERFRg== #### perl -e "$lf = @ARGV;$sql= 'insert into BLAH (' . eval{join ',',@ARGV } . ') VALUES (' . eval{join ',', split//,'?' x $lf} . ')'; print $sql;" DOGS CATS FISH ANIMALS TRIKES KITES insert into BLAH (DOGS,CATS,FISH,ANIMALS,TRIKES,KITES) VALUES (?,?,?,?,?,?)