From: | Andrew McMillan <andrew(at)morphoss(dot)com> |
---|---|
To: | V S P <toreason(at)fastmail(dot)fm> |
Cc: | pgsql-php(at)postgresql(dot)org |
Subject: | Re: [Q] storing JSON, problem with 'escapes' |
Date: | 2008-11-21 10:28:46 |
Message-ID: | 1227263326.16206.10.camel@happy.mcmillan.net.nz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-php |
On Fri, 2008-11-21 at 01:54 -0500, V S P wrote:
> Hi,
> 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'\\'.
When you construct your SQL, if you are going to construct it as a
string, like:
INSERT INTO blah ( json_column )
VALUES ( 'VLADIKVLADIKVLADIKVLADIK(\\"b2122\\")' )
You need to instead insert as:
INSERT INTO blah ( json_column )
VALUES ( E'VLADIKVLADIKVLADIKVLADIK(\\"b2122\\")' )
The "E" in front of the string is a special PostgreSQL thing which
explains that the string is encoded with \ escaping.
See:
http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html
particularly the box labelled 'caution' and the paragraph above it.
Regards,
Andrew McMillan.
------------------------------------------------------------------------
andrew (AT) morphoss (DOT) com +64(272)DEBIAN
You have a truly strong individuality.
------------------------------------------------------------------------
From | Date | Subject | |
---|---|---|---|
Next Message | V S P | 2008-11-21 21:18:51 | Re: [Q] storing JSON, problem with 'escapes' |
Previous Message | V S P | 2008-11-21 07:43:56 | Re: [Q] storing JSON, problem with 'escapes' |