Skip site navigation (1) Skip section navigation (2)

Re: Trouble Escaping Quotes

From: "Haron, Charles" <charles(dot)haron(at)cognitive(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: Trouble Escaping Quotes
Date: 2005-01-21 15:43:00
Message-ID: 593E515C9586D511BB4500010283D5E2025649A9@COG-MAIL (view raw or flat)
Thread:
Lists: pgsql-admin
Yes, but how do you escape the quote when the value of the string isn't know
until the function is run? 

If $rma_data->{\'company_name\'} is returning Bob's Fixit at run time, how
do escape the quote BEFORE Perl interprets the string and generates an
error?

Regards,
Chuck

> -----Original Message-----
> From: Joshua D. Drake [mailto:jd(at)commandprompt(dot)com] 
> Sent: Thursday, January 20, 2005 3:12 PM
> To: Haron, Charles
> Cc: pgsql-admin(at)postgresql(dot)org
> Subject: Re: [ADMIN] Trouble Escaping Quotes
> 
> Haron, Charles wrote:
> > Hello,
> > 
> > I'm using a perl function in my PosgreSQL database to send an email.
> > However, field data containing single quotes causes the 
> function to fail.
> > I'm having trouble escaping the quotes.  Sample function 
> definition follows.
> 
> You escape single quotes in PostgreSQL with 2 single quotes... e.g;
> 
> print 'foo';
> 
> Should be:
> 
> print ''foo''; (not double quotes, two single quotes)
> 
> Sincerely,
> 
> Joshua D. Drake
> 
> 
> > 
> > 
> > If company_name is Bob's Fixit, the function will fail.
> > 
> > CREATE OR REPLACE FUNCTION public.send_rma(rma_info)
> >   RETURNS void AS
> > '
> >     use Mail::Sender;
> >     my ($rma_data) = @_;
> >     my ($sender) = new Mail::Sender {
> >       smtp => \'192.168.1.1\',
> >       from => \'supp(at)cog(dot)com\',
> >      on_errors => \'die\'
> >     };
> > 
> >     $sender->Open({
> >       to => \'pgsql-admin(at)postgresql(dot)org\',
> >       cc => \'supp(at)cog(dot)com\',
> >       subject => "RMA Request $rma_data->{\'rma\'}"
> >     });
> > 
> >     $sender->SendLineEnc("[RMA]");
> >     $sender->SendLineEnc("$rma_data->{\'rma\'}");
> > 
> >     $sender->SendLineEnc("[CASE NUMBER]");
> >     $sender->SendLineEnc("$rma_data->{\'case_number\'}");
> > 
> >     $sender->SendLineEnc("[COMPANY NAME]");
> >     $sender->SendLineEnc("$rma_data->{\'company_name\'}");
> > 
> >     $sender->Close();
> > 
> > '
> >   LANGUAGE 'plperlu' STABLE;
> > 
> > 
> > Thanks,
> > Chuck
> > 
> > ***********************
> > 
> > Confidentiality notice:  This electronic transmission 
> message is intended only for the use of the individual or 
> entity to whom it is addressed.  This information should be 
> treated as proprietary, confidential, legally privileged and 
> exempt from disclosure under applicable law.  If the reader 
> of this message is not the intended recipient, (or the 
> employee or agent responsible for delivering the message to 
> the intended recipient), you are hereby notified that any 
> use, dissemination, distribution, or copying of this message 
> is strictly prohibited.  If you have received this 
> communication in error, please immediately notify us by 
> telephone (720) 221-9421 or by return e-mail and delete this 
> message.  Thank you for your cooperation.
> > 
> > ---------------------------(end of 
> > broadcast)---------------------------
> > TIP 9: the planner will ignore your desire to choose an 
> index scan if your
> >       joining column's datatypes do not match
> 
> 
> --
> Command Prompt, Inc., your source for PostgreSQL replication, 
> professional support, programming, managed services, shared 
> and dedicated hosting. Home of the Open Source Projects 
> plPHP, plPerlNG, pgManage,  and pgPHPtoolkit.
> Contact us now at: +1-503-667-4564 - http://www.commandprompt.com
> 
> 

Responses

pgsql-admin by date

Next:From: Kristaps ArmanisDate: 2005-01-21 15:45:05
Subject: Re: [GENERAL] Restoring fscked up postgres 7.1
Previous:From: Martijn van OosterhoutDate: 2005-01-21 15:30:07
Subject: Re: [GENERAL] Restoring fscked up postgres 7.1

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group