Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Interpolating DBI/SQL placeholders

by blokhead (Monsignor)
on May 11, 2004 at 04:45 UTC ( #352312=note: print w/ replies, xml ) Need Help??


in reply to Interpolating DBI/SQL placeholders

I don't think I fully understand the placeholder problem you're seeing. It may be Sybase-specific, and if you post the placeholder usage that didn't do what you wanted, you may get some better help.

But if it turns out you really do need to "fill out" the placeholder values by hand, here's how I've done it in the past:

my $sql = "insert into foo values (?,?,?)"; my @binds = qw/alpha beta gamma/; { my $i = 0; $sql =~ s/\?/ $dbh->quote( $binds[$i++] ) /ge; } # "insert into foo values ('alpha','beta','gamma')"
Someone could probably golf this shorter, but you must be careful not to replace question marks that appear in the bind values. For instance, I've seen code on CPAN that would go wrong on this:
my $sql = "insert into foo values (?, ?)"; my @binds = ("Huh?", "What?"); # correct: "insert into foo values ('Huh?', 'What?')" # mysqlPP: "insert into foo values ('Huh'What?'', ?)"
Update: Got rid of \G business.

blokhead


Comment on Re: Interpolating DBI/SQL placeholders
Select or Download Code
Re: Re: Interpolating DBI/SQL placeholders
by abclex (Monk) on May 11, 2004 at 10:38 UTC

    Great! Your code does exactly what I want. :)

    Many thanks,
    abclex

    ps: Nevertheless I think I'll investigate some more time to check out the problem with my code...

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://352312]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (7)
As of 2014-08-20 08:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (107 votes), past polls