Subject: | Fix for: "'sprintf' is not recognized as an internal or external command ..." -- Windows specific |
Hi,
A patch I previously recommended in November 2009 (pushed live into
DBD::mysql v4.014 onwards) contains a Perl coding syntax error, causing
the make stage to fail on Windows with the following error:
C:\strawberry\cpan\build\DBD-mysql-4.022-OLuTyU>perl Makefile.PL
--with-mysql="C:\dev\mysql\MySQL Server 5.5" --testuser=user
--testpassword=password
'sprintf' is not recognized as an internal or external command, operable
program or batch file.
Problem running C:\dev\mysql\MYSQLS~1.5\bin\MYSQLA~1.EXE - aborting ...
Previous RT bug number (containing the offending patch): #51784 --
https://rt.cpan.org/Public/Bug/Display.html?id=51784
I have attached a patch file that will fix the issue by ensuring the
path to MySQL admin' and the command line parameters are resolved into a
string before being given to qx() to execute and catch the output of.
--
RT bug #67280 ( https://rt.cpan.org/Public/Bug/Display.html?id=67280 )
is a bug report related to the above issue.
--
Details not required for this bug report, but may prove helpful:
I encountered the above Makefile.PL error when trying to compile
DBD::mysql v4.022 on Strawberry Perl v5.8.9 with MySQL Server v5.5.29
(community edition) on Microsoft Windows 7.
Kind regards,
Zeeshan
Subject: | DBD-mysql _v4.022_sprintf_patch.diff |
814c814,815
< $v = qx( sprintf('%s --user=%s --password=%s version', $mysqladmin , $opt->{'testuser'}, $opt->{'testpassword'}) );
---
> my $custom_mysqladmin = sprintf('%s --user=%s --password=%s version', $mysqladmin , $opt->{'testuser'}, $opt->{'testpassword'});
> $v = qx($custom_mysqladmin);