Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

A bind variable is really needed here . . .

by hesco (Deacon)
on Nov 01, 2009 at 15:15 UTC ( [id://804349]=perlquestion: print w/replies, xml ) Need Help??

hesco has asked for the wisdom of the Perl Monks concerning the following question:

Excerpted from my apache logs, I'm seeing:

DEBUG: $self->_process_cc_pre_confirm() says the sql.get_new_subscribe +r query reads: $VAR1 = 'SELECT lsmb_acct_id, addr1, addr2, city, state, zip, billing_ +plan, billing_cycle, fname, lname, email, phone FROM accounts a LEFT +JOIN account_users u ON a.account_code = u.account_code WHERE account +_billing_contact = \\\\\\'yes\\\\\\' AND a.account_code = ?'; Uncaught exception from user code: \tDBD::Pg::st execute failed: called with 1 bind variables when 0 are +needed at . . . line 569.
This log noise is thrown by code reading:

my $sql = $self->{'cfg'}->param("sql.get_new_subscriber"); $self->log('DEBUG','$self->_process_cc_pre_confirm() says the sql.ge +t_new_subscriber query reads: ',$sql); my $sth = $self->{'dbh'}->prepare($sql); $sth->execute($self->{'s'}->param('account_code')); my $subscriber = $sth->fetchrow_hashref();
My configuration file reads in relevant part:

get_new_subscriber='SELECT lsmb_acct_id, addr1, addr2, city, state, zi +p, billing_plan, billing_cycle, fname, lname, email, phone FROM accou +nts a LEFT JOIN account_users u ON a.account_code = u.account_code WH +ERE account_billing_contact = \'yes\' AND a.account_code = ?'
I have no idea why my quoted value for account_billing_contact gets so thoroughly escaped in my logs. Nor any idea why the need for my bind variable is not recognized. Though I suspect the two questions may be related somehow.

Any thoughts on how to resolve this issue?

-- Hugh

if( $lal && $lol ) { $life++; }
if( $insurance->rationing() ) { $people->die(); }

Replies are listed 'Best First'.
Re: A bind variable is really needed here . . .
by erix (Prior) on Nov 01, 2009 at 17:16 UTC

    If column "account_billing_contact" is boolean, you may be able to avoid quoting problems with:

    where account_billing_contact = TRUE
Re: A bind variable is really needed here . . .
by gmargo (Hermit) on Nov 01, 2009 at 16:26 UTC

    I don't think you need the single quotes around 'yes'. Try without them. Although I'm not sure what you would do if that string had a space in it, like 'yes mama'.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://804349]
Approved by AnomalousMonk
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2024-03-28 18:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found