On 27/09/11 10:51, Tadhg MacCarthy wrote:
Hello all,
I hope I can get some insight on this issue here.
Hello,
The following code:
use warnings;
use DBI;
$h=DBI->connect('dbi:mysql:cq','root','password',{RaiseError=>0,PrintError=>0})
or die "Connection Failed: $DBI::errstr";
$s=$h->prepare("select * from does_not_exist");
$s->execute or die 'Execute Failed with error ['. $s->errstr . ']';
produces the output:
Use of uninitialized value in concatenation (.) or string at
testmysql.plline 15.
Execute Failed with error [] at testmysql.pl line 5.
Seems to work fine for me:
perl -le 'use strict; use warnings; use DBI; my $h = DBI->connect("dbi:mysql:database=test", "xxx","yyy",
{RaiseError => 0, PrintError => 0}) or die $DBI::errstr; my $s = $h->prepare(q/select * from does_not_exist/) or die $DBI::errstr;
$s->execute or die "DBI:" . $DBI::errstr . " sth:", $s->errstr;'
DBI:Table 'test.does_not_exist' doesn't exist sth:Table 'test.does_not_exist'
doesn't exist at -e line 1.
The environment is:
DBD-mysql 4.0.19
MySQL: Server version: 5.5.15 MySQL Community Server (GPL)
Perl 5.14.1: This is perl 5, version 14, subversion 1 (v5.14.1) built for
MSWin32-x64-multi-thread
ActivePerl 5.14.1 Build 1401 (64-bit)
Windows 7 Professional Sevice Pack 1 64 bit
and DBI version?
The code produces the expected output when the operating system is Windows
XP 32-bit.
Other information:
Valid SQL works as expected on Windows-7-x64 - it just seems that the error
string is not set correctly.
Bug reported at:
https://rt.cpan.org/Public/Bug/Display.html?id=71047
Also posted to StackOverflow:
http://stackoverflow.com/questions/7432944/undefined-dbierrstr-using-dbi-perl-and-mysql-on-windows-7-x64
Thanks in advance,
Tadhg
Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com