Received: from lee.k12.nc.us (shomer.lee.k12.nc.us [207.4.71.118]) by hub.org (8.9.3/8.9.3) with ESMTP id PAA85628 for ; Thu, 17 Jun 1999 15:04:50 -0400 (EDT) (envelope-from joden@lee.k12.nc.us) Received: from lee.k12.nc.us ([10.0.0.1]) by lee.k12.nc.us (8.9.1a/8.9.1) with ESMTP id PAA25568; Thu, 17 Jun 1999 15:03:20 -0400 Message-ID: <376946E0.FFF6F64@lee.k12.nc.us> Date: Thu, 17 Jun 1999 15:05:04 -0400 From: James Olin Oden Organization: Lee County Schools X-Mailer: Mozilla 4.6 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: Brendan McKenna CC: pgsql-interfaces@hub.org Subject: Re: [INTERFACES] Dumb Perl-related question References: <199906171726.SAA17199@w3s.ie> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Brendan McKenna wrote: > > Hi, > > This question is so dumb that I am embarassed to ask it, but I can't > seem to figure it out myself. I have a select statement with a where clause, > where I am trying to select all values from the database that match a string > literal. Only whenever I try to specify a string literal in the query, it > gives me a syntax error on the first word in the literal. > > What I'm doing looks like this: > > $query = "select recipe_name, occasion, num_served, prep_time, " . > "freezable, instructions " . > "from recipe " . > "where recipe_name = '$recipe';"; > $result = $dbconn->exec($query); > $rstatus = $result->resultStatus; > if ($rstatus != PGRES_TUPLES_OK && $rstatus != PGRES_EMPTY_QUERY) { > croak "getRecipe: Database error during query: " . > $dbconn->errorMessage; > } Try changing the $query assignment to: $query = < > Every time, it prints out the following error: > > getRecipeEquipment: Database error during query: ERROR: parser: parse error at or near "no" at ./recipeDisplay line 33 > > The recipe name I am using is 'No Such Recipe'. > > There would only be one row ever returned, since recipe_name is the > primary key of the recipe table. > > I am using perl 5.005_55, postgreSQL 6.4.2 (with the Pg module which > is distributed with it). > > I have tried every different type of quote that my keyboard will > allow me to enter, casts, you name it, I think I've tried it. Well, > obviously not, since I am certain that this MUST work somehow or another. > About half of the things I've tried work fine in psql, just not in the Perl > interface. Single quotes were what you should use around the SQL literal. Double quotes should be used (if not using a here document) around the whole query, if you wish your variable to be replaced by its contents. I hope this helps...james > > Any help would be greatly appreciated. > > Brendan > -- > Brendan McKenna > Technical Director Phone: +353-(0)61-338177 x4143 > W3 Services Ltd. Fax: +353-(0)61-338065 > Innovation Centre Email: brendan@w3s.ie > National Technological Park > Limerick > Ireland