D&C GLug - Home Page

[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]

Re: [LUG] perl question

 

J Wonnacott wrote:
> I need to pass a variable to the WHERE clause, however when the variable hits the 
> SQL server it should appear in single quotes i.e. WHERE person_id = '<interpolated 
> $variable>'.
> How do I send '$variable' but still get it interpolated?

It's still interpolated. The single quotes are just characters when 
enclosed in outer double-quotes.

my $dbh = DBI->connect ($dsn, $dbusername, $dbpassword)
my $sth = $dbh->prepare("SELECT * FROM table WHERE person_id = 
'$variable'");
$sth->execute();
my @row = $sth->fetchrow_array;
$sth->finish();
$dbh->disconnect();

If building complicated queries, I find it easier to do a string first, 
but that's just me.

my $sql = "SELECT * FROM table WHERE person_id = '$variable'";
my $sth = $dbh->prepare($sql);

-- 
Simon Avery

-- 
The Mailing List for the Devon & Cornwall LUG
http://mailman.dclug.org.uk/listinfo/list
FAQ: http://www.dcglug.org.uk/linux_adm/list-faq.html