pg.ddx.io pgsql-sql@postgresql.org mailing list archivehelp / color / mirror / Atom feed
From: Bart Degryse <Bart.Degryse@indicator.be>
To: pgsql-sql@postgresql.org
Subject: Quote problem
Date: Fri, 06 Jul 2007 16:14:34 +0200
Message-ID: <468E6A69.A3DD.0030.0@indicator.be> (raw)
Consider a perl function like this
CREATE OR REPLACE FUNCTION public.test(text) RETURNS VOID AS
$body$
my $var = shift;
spi_exec_query("INSERT INTO tbltest(field1) VALUES ('$var')");
$body$
LANGUAGE 'plperlu' VOLATILE;
and a table
CREATE TABLE tbltest (
field1 text
) WITHOUT OIDS;
When I call the function like
SELECT test('Do this')
it works. But when I call it like
SELECT test('Don't do that')
it fails (of course). So I call it like
SELECT test('Don''t do that')
It still fails and I do understand why. But how do I solve it in the function?
Using a prepared statement would be a solution, like
$sel = spi_prepare('SELECT test($1)', 'text');
spi_exec_prepared($sel, $var);
But I need to get it solved without prepared statements.
What is the best approach considering that $var could contain both
single and double quotes?
Thanks
Message-ID: <468E6A69.A3DD.0030.0@indicator.be> Permalink: ../468E6A69.A3DD.0030.0@indicator.be/ Also on: postgresql.org/message-id/468E6A69.A3DD.0030.0@indicator.be ·
reply
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Reply to all the recipients using the --to and --cc options: reply via email To: pgsql-sql@postgresql.org Cc: Bart.Degryse@indicator.be Subject: Re: Quote problem In-Reply-To: <468E6A69.A3DD.0030.0@indicator.be> * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions for how to clone and mirror all data and code used for this inbox