Thread: Var substitution in SELECT statements
This works: $res = $conn->exec("select cust, contact, user_name, email from $t where user_name = a1a"); This doesn't: $c = "a1a"; $res = $conn->exec("select cust, contact, user_name, email from $t where user_name = $c"); and returns the error: Attribute 'a1a' not found How do you do var substitution with the Pg module in Perl? -- Randy Perry sysTame Mac Consulting/Sales
on 4/23/01 9:20 PM, Randall Perry at rgp@systame.com wrote: > This works: > $res = $conn->exec("select cust, contact, user_name, email from $t where > user_name = a1a"); > > This doesn't: > $c = "a1a"; > $res = $conn->exec("select cust, contact, user_name, email from $t where > user_name = $c"); > > and returns the error: > Attribute 'a1a' not found > > > How do you do var substitution with the Pg module in Perl? Whoops! Needed to quote the var as so (for $c above): $c = "\'$c\'"; Works now. -- Randy Perry sysTame Mac Consulting/Sales
On Mon, 23 Apr 2001, Randall Perry wrote: > This works: > $res = $conn->exec("select cust, contact, user_name, email from $t where > user_name = a1a"); > > This doesn't: > $c = "a1a"; > $res = $conn->exec("select cust, contact, user_name, email from $t where > user_name = $c"); > > and returns the error: > Attribute 'a1a' not found > > How do you do var substitution with the Pg module in Perl? First, I would highly recommend you investigate the perl DBI abd DBD::Pg modules -- they handle variable placeholders quite efficiently and correctly. But for your problem above, surely you must use single quotes around any string you include as a literal in an SQL query. $res = $conn->exec("select cust, contact, user_name, email from $t where user_name = '$c'"); -- Tod McQuillin