#!c:\perl\bin\perl use strict; use warnings; use CGI; use DBI; my $q = new CGI; if($q->param("addrecord")){ my %cols = ( servicename => "Name", description => "description", url => "url", help => "helpdesk", group => "grp", hbi => "hbi", riskregister => "register", serviceman => "service_manager", servemail => "man_email", servtel => "man_phone", deputy => "deputy_manager", depemail => "dep_email", deptel => "dep_phone" ); my $keystring = (); my $valuestring = (); my $db = DBI->connect('foo', 'bar', 'baz') or die "Can't connect"; foreach ( qw/ servicename description url help group hbi riskregister serviceman servemail servtel deputy depemail deptel /) { if ({$_}) { $keystring .= $cols{$_} .","; $valuestring .= $db->quote({$_}) .","; } } #remove last comma $keystring =~ s/,$//; $valuestring =~ s/,$//; my $statement = qq( INSERT INTO service_metrics ($keystring) VALUES ($valuestring) ); my $sth = $db->prepare($statement); if (! $sth) { die(sprintf('[FATAL] Could not prepare statement: %s\n\n ERRSTR: %s\n', $db->errstr())); } $sth->execute(); if (! $sth) { die(sprintf('[FATAL] Could not execute statement: %s\n\n ERRSTR: %s\n', $db->errstr())); } $sth->finish; $db->disconnect(); } print $q->header(); print $q->start_html(-title=>'New Service'); print "You have added a service";