in reply to DBI execute is not failing when placeholder values are not supplied
@ARGV == ()
Yep, that's the entire reason.
If you don't pass anything on the command line @ARGV is an empty list. Databases allow NULL values and DBI represents a NULL as undef. When DBI evaluates @ARGV it autovivifies as many parameters as it needs. So what you're actually doing is binding NULL (undef) to each parameter.
#!/usr/bin/perl -w use strict; use DBI; my $dbh = DBI->connect('dbi:connect_sting', 'user', 'pass', {RaiseErro +r => 1}); my $sth = $dbh->prepare('insert into foo (bar, qux) values (?,?)'); $sth->execute( () ); $sth->finish; $dbh->disconnect;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: DBI execute is not failing when placeholder values are not supplied
by runrig (Abbot) on Oct 24, 2001 at 20:08 UTC |