[Q] storing JSON, problem with 'escapes'
От | V S P |
---|---|
Тема | [Q] storing JSON, problem with 'escapes' |
Дата | |
Msg-id | 1227250475.15555.1285991741@webmail.messagingengine.com обсуждение исходный текст |
Ответы |
Re: [Q] storing JSON, problem with 'escapes'
Re: [Q] storing JSON, problem with 'escapes' |
Список | pgsql-php |
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'\\'. ( 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 differently. 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 correct. thanks in advance for any help. -- V S P toreason@fastmail.fm -- http://www.fastmail.fm - Access all of your messages and folders wherever you are
В списке pgsql-php по дате отправления: