Thread: How to escape apostrophes when apostrophes already used to escape something else

How to escape apostrophes when apostrophes already used to escape something else

From
Stefan Schwarzer
Date:
Hi there,

probably not too complicated, but although googling my way through
many pages, I don't find the solution.

I have a query which uses already an apostrophe to escape something
else:

$query = "SELECT
            *
        FROM
            crosstab('SELECT
                        COALESCE(c.name, '''') AS name,
                        d.year_start AS year,
                        d.value AS value
                    FROM
                        co2_total_cdiac AS d
                    RIGHT JOIN
                        countries_view AS c ON c.id = d.id_country
                    WHERE
                        (d.year_start = 1960 ) AND
                        (c.name = ''Cote d'Ivoire'' )
                    ORDER BY
                        1,2;', 3) AS ct(name varchar, y_1960 numeric)

Now, "Cote d'Ivoire" needs to be escaped too. But how can I achieve
this?

Thanks for any hints.

Stef

Attachment

Re: How to escape apostrophes when apostrophes already used to escape something else

From
Grzegorz Jaśkiewicz
Date:
use $$
Or you can always use double single quotes, which is going to
translate into single one, ie : blah = 'foo '' bar';
will give you "foo ' bar" string.

Re: How to escape apostrophes when apostrophes already used to escape something else

From
"Albe Laurenz"
Date:
Stefan Schwarzer wrote:
> probably not too complicated, but although googling my way through
> many pages, I don't find the solution.
>
> I have a query which uses already an apostrophe to escape something
> else:
>
> $query = "SELECT
>             *
>         FROM
>             crosstab('SELECT
[...]
>                         (c.name = ''Cote
d'Ivoire'' )
>                     ORDER BY
>                         1,2;', 3) AS ct(name
varchar, y_1960 numeric)
>
> Now, "Cote d'Ivoire" needs to be escaped too. But how can I achieve
> this?

In your case, by using ''Cote d''''Ivoire''.

Yours,
Laurenz Albe

Re: How to escape apostrophes when apostrophes already used to escape something else

From
Grzegorz Jaśkiewicz
Date:
On Fri, Feb 5, 2010 at 1:29 PM, Albe Laurenz <laurenz.albe@wien.gv.at> wrote:
> In your case, by using ''Cote d''''Ivoire''.

single quotes for string literals. So again: 'Cote d''lvoire'.

--
GJ

On Fri, Feb 05, 2010 at 10:13:21AM +0100, Stefan Schwarzer wrote:
> probably not too complicated, but although googling my way through
> many pages, I don't find the solution.
>
> I have a query which uses already an apostrophe to escape something
> else:

Not sure if "dollar quoting" may be easier for you here.  Have a look
at:

 http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING

--
  Sam  http://samason.me.uk/