2012-01-17 51 views
-2

我正在向服务器发送JSONArray,在该服务器中,脚本解码它并使用其中的数据更新MYSql数据库。现在的问题是,一切正常,直到脚本遇到一个字段包含一个撇号,我明白是由php用作转义字符。JSON中发送的保留撇号

如何避免这种情况,同时仍然保留撇号?我是否在Android端添加了一些内容,然后将其移除到服务器端,还是可以在服务器端忽略它,同时仍然保留它?

任何帮助表示赞赏。

+0

PHP的转义字符是反斜杠,撇号从未被用作PHP的转义。如果在json字符串中有撇号,则它本身应该用反斜杠进行转义,例如, '{“x”:“This quote is escaped”} – 2012-01-17 16:38:50

+0

如果它不能像预期的那样工作,它会做什么?它何时停止按预期行事?解析JSON?插入到数据库中?(我打赌这是[Bobby-Tables](http://bobby-tables.com/)地区)被拉出数据库?magic_quotes是否搞乱了数据? – Quentin 2012-01-17 16:40:54

回答

1

在行之间阅读,你的问题不是PHP将撇号视为逃避(它不),但你不是sanitising your database input

在MySQL查询中,撇号具有特殊含义(字符串封装器),并且存在未转义的撇号会破坏您的SQL语法。

我不知道你正在使用的数据库驱动程序,但您可能需要其中之一:

...或更好,使用prepared statements

+0

非常感谢Dave,will给上面的一个去。 – 2012-01-17 18:19:09