my $dbh = DBI->Connect(@params); # initialized elsewhere my $sqlgen = SQL::Abstract->new; my %data = (a => undef, b => 1, c => q/'string and string'/); $_ = $dbh->quote($_) for values %data; print scalar $sqlgen->generate('insert into',\'atable',\%data); __END__ # prints: INSERT INTO atable SET a = NULL, b = '1', c = '\'string and string\''