my $dbh = DBI->connect(@params); my $gen = SQL::Abstract->new; my ($insert, @bind) = $gen->insert(atable=>{a=>undef,b=>1,c=>'string'}); my $sth = $dbh->prepare($insert); $sth->execute(@bind); __END__ $insert eq "INSERT INTO atable ( a, b, c) VALUES ( ?, ?, ? )" @bind contains undef, 1, "string"