in reply to DBI conditional insert (and things of those nature)

Answer one:
I'd use COUNT, mostly because it's a fast query that would give a consistent Perl-friendly 1 or 0 in a single row. Code could look something like this:

my $check_q = "SELECT COUNT(EMPLOYEE_NUMBER) FROM EMPLOYEE WHERE EMPLO +YEE_NUMBER = ?"; my ($employee_already_present) = $dbh->selectrow_array($check_q, undef +, $employee_number); if ($employee_already_present) { # raise an HTML error } else { # continue with the insert statement }

Answer two:
The filter you're using may cause more problems than it solves. Since your eval is blocked instead of quoted, that extra slash will make its way into your data. You may have wanted to turn ' into '' instead (the SQL escape for '), in which case you're better off using $dbh->quote() or bind values (as in answer one above).