Using q() to define a query
- From: cww@xxxxxxxxxxxxxxxx (Colin Wetherbee)
- Date: Thu, 10 Jan 2008 22:59:08 -0500
Greetings.
I have a DBI (DBD::Pg) application I'm building in mod_perl. My queries tend to look something like the following.
my $sql = q(SELECT departure_date, eq.name AS equipment,
dp.full_city AS departure_city, ap.full_city AS arrival_city,
ca.name AS carrier_name, number
FROM jsjourneys
FULL OUTER JOIN jscarriers AS ca ON jsjourneys.carrier = ca.id
FULL OUTER JOIN jsequipment AS eq ON jsjourneys.equipment = eq.id
JOIN jsports AS dp ON jsjourneys.departure_port = dp.id
JOIN jsports AS ap ON jsjourneys.arrival_port = ap.id
ORDER BY departure_date);
And, then, I execute them as follows.
$dbh->selectall_arrayref($sql, { Slice => {} });
Which works quite well.
However, I'm concerned about $sql because when I output it to Apache's debug log, it looks like this:
[Fri Jan 11 03:49:09 2008] [debug] Log.pm(36): [client 192.168.171.80] [JetSet] SELECT departure_date, eq.name AS equipment,\n dp.full_city AS departure_city, ap.full_city AS arrival_city,\n ca.name AS carrier_name, number\n FROM jsjourneys\n FULL OUTER JOIN jscarriers AS ca ON jsjourneys.carrier = ca.id\n FULL OUTER JOIN jsequipment AS eq ON jsjourneys.equipment = eq.id\n JOIN jsports AS dp ON jsjourneys.departure_port = dp.id\n JOIN jsports AS ap ON jsjourneys.arrival_port = ap.id\n ORDER BY departure_date
Notice the newline characters in there. If those were really in the query, I can't imagine the database would run it, so I suppose they're an artifact of the combination of using q() to quote my query and using Apache's logger to output it.
All this leads up to a pretty simple question: is using q() to quote my queries a bad thing, and/or will it cause trouble in the future?
(As an aside, how do you guys quote your queries? I find that for anything longer than about 60 characters, q() and '' and everything else start to look horribly inelegant.)
Thanks.
Colin
.
- Follow-Ups:
- Re: Using q() to define a query
- From: Dr.Ruud
- Re: Using q() to define a query
- From: Victor Churchill
- Re: Using q() to define a query
- From: John Scoles
- Re: Using q() to define a query
- From: Jonathan Leffler
- Re: Using q() to define a query
- Prev by Date: Re: Segmentation Fault(Core dumped)
- Next by Date: Re: Using q() to define a query
- Previous by thread: ANNOUNCE: DBD::Oracle 1.20 Release Candidate 8
- Next by thread: Re: Using q() to define a query
- Index(es):
Relevant Pages
|
|