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

[Q] storing JSON, problem with 'escapes'

From: "V S P" <toreason(at)fastmail(dot)fm>
To: pgsql-php(at)postgresql(dot)org
Subject: [Q] storing JSON, problem with 'escapes'
Date: 2008-11-21 06:54:35
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-php
I am using PHP's json_encode function on
an array of strings
that gives me back a JSON encoded string.

Some of the elements in the string arrays have
double quotes.  So PHP's json_encode correctly
escapes them (according to JSON specifications)
with \.

For example here is a an array element

"if( js_iop_lt(a,b) ){ VLADIKVLADIKVLADIKVLADIK("b2122") ;}"

would get encoded in JSON as

"if( js_iop_lt(a,b) ){ VLADIKVLADIKVLADIKVLADIK(\"b2122\") ;}"

And that's correct.
Now, the problem is that with PDO (or may be postgresql itself)
I get 

"if( js_iop_lt(a,b) ){ VLADIKVLADIKVLADIKVLADIK(\\"b2122\\") ;}"

and I get then the POSTGRESQL warning

WARNING:  nonstandard use of \\ in a string literal at character 240
HINT:  Use the escape string syntax for backslashes, e.g., E'\\'.

( I am seeing what postgres is getting because I enabled logging of
all the statements to stderr)

So I am not sure what to do.  This has to be a common issue
(unless nobody before me stored JSON in postgresql :-) ).

The PDO does not provide facilities to 'not to escape' or escape

Ideally I do not want the second backslash.  I do not undestand who
adds it and why. The first backslash is by json_encode -- which is

thanks in advance for any help.

  V S P

-- - Access all of your messages and folders
                          wherever you are


pgsql-php by date

Next:From: ChrisDate: 2008-11-21 07:17:59
Subject: Re: [Q] storing JSON, problem with 'escapes'
Previous:From: V S PDate: 2008-11-17 08:55:55
Subject: Re: [Q] PDO use to bind arrays for insert

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