in reply to Re: Using DBI to make connection to a database
in thread Using DBI to make connection to a database

That is bad advice!

Please do not create SQL statements with fixed strings and do (remember bobby?)

I agree with the wrong quotes being used (of course). Shell quotes are not perl quotes on Windows at least.

If you want to see the statement used when something fails, use the appropriate means:

my $dbh = DBI->connect ("dbi:Pg:", $user, $pass, { RaiseError => 1, PrintError => 1, ShowErrorStatement => 1, }) or die $DBI::errstr; my $sth = $dbh->prepare ("select foo from bar where boom = ?"); $sth->execute (1);

Enjoy, Have FUN! H.Merijn

Replies are listed 'Best First'.
Re^3: Using DBI to make connection to a database
by soonix (Chancellor) on Jul 03, 2015 at 12:14 UTC

    I did not intend to advise creating SQL with fixed strings if you have variable parts. This was just an example (and didn't contain any variables in the SQL).

    And if you have things like q(SELECT ConfigValue FROM ConfigTable WHERE ConfigKey = 'ScreenWidth'), where you have neither placeholder nor variable interpolation, then there's other problems than simply the fixed string :-)

    Plus in the "I prefer" part I used prepare anyway…

    Update: Of course, $dbh->do("SELECT ... is very bad practice per se, because SELECT COUNT(*) ... usually is more efficient ;-) (see do in DBI) … used it for illustration purposes only.