baperl has asked for the wisdom of the Perl Monks concerning the following question:

hi, I am trying to execute the following command in my Perl program
my $ins_rec = "INSERT INTO $tbl_name (col1, col2, col3, col4, col5, co +l6, col7) VALUES (?,?,?,?,?,?,?);"; $sth=$dbh->prepare($ins_rec) or die $dbh->errstr; $sth->execute($col1, $col2, $col3, $col4, $col5, $col6, $col7) or die +$sth->errstr;
in my table, col7 is described as
col7 ENUM('N','Y') NOT NULL DEFAULT 'N'
however, when I execute the program, I get the following error:
Global symbol "$col7" requires explicit package name at test.pl line 9 +6. Execution of test.pl aborted due to compilation errors.
of course, when I remove col7, my program works fine. So, how do I fix the statement so I can insert col7 into my table. thanks!

Replies are listed 'Best First'.
Re: inserting enum column into mysql from Perl program
by onelesd (Pilgrim) on Sep 25, 2011 at 22:19 UTC

    This means you never declared nor defined $col7. The following is missing from your code:

    my $col7 ;

    Note that $col7 will remain undefined until you set it to something else. DBI will treat undef as NULL while executing SQL statements.

      understood....yes indeed, I had not...let me fix that and see if it works ... thx!
        thanks, I fixed that and it works:-)