It memory serves me correctly I think any errors that are generated is stored in the ArrayTupleStatus have a parse through that array to see it the error is stored there.
----- Original Message ----- From: "Martin J. Evans" <[EMAIL PROTECTED]> To: <dbi-users@perl.org> Sent: Tuesday, July 04, 2006 6:37 AM Subject: Is it correct that execute_array does not raise/print an error > Hi, > > I have some code which uses execute_array but it appears when it fails > my error handler is not called and no error is printed despite setting > PrintError and RaiseError. The script below illustrates. Is it correct that an > error can occur in execute_array and it not cause a die when RaiseError is set? > > use DBI; > use strict; > use Data::Dumper; > > sub fred > { > print "Error Handler called\n"; > print Dumper([EMAIL PROTECTED]); > } > > my $dbh = DBI->connect( > 'DBI:mysql:mjetest', 'xxx', 'yyy', > { RaiseError => 1, PrintError => 1, HandleError => \&fred}); > $dbh->do(q/drop table if exists mytest/); > $dbh->do(q/create table mytest (a int primary key, b char(20))/); > > my $sth = $dbh->prepare(q/insert into mytest values (?,?)/); > $sth->bind_param(1, 1); > $sth->bind_param(2, 'onetwothree'); > $sth->execute; > > $sth->bind_param_array(1, [51,1,52,53]); > $sth->bind_param_array(2, ['fiftyone', 'fiftytwo', 'fiftythree', 'one']); > my @tuple_status; > my $inserted = $sth->execute_array( { ArrayTupleStatus => [EMAIL PROTECTED] } ); > print "Error from execute_array - $DBI::errstr\n" if (!$inserted); > > which produces: > > Error from execute_array - > > even though the trace indicates: > > <- prepare('insert into mytest values (?,?)')= DBI::st=HASH(0x82a1b80) at > execute_array.pl line 17 > <- bind_param(1 1)= 1 at execute_array.pl line 18 > <- bind_param(2 'onetwothree')= 1 at execute_array.pl line 19 > <- execute= 1 at execute_array.pl line 20 > <- bind_param_array(1 ARRAY(0x829d4f8))= 1 at execute_array.pl line 22 > <- bind_param_array(2 ARRAY(0x829d534))= 1 at execute_array.pl line 23 > <- execute_array(HASH(0x829d5c4))= undef at execute_array.pl line 26 > > > Thanks > > Martin > -- > Martin J. Evans > Easysoft Ltd, UK > http://www.easysoft.com > >