我们遇到了一个奇怪的边缘情况,我们试图将json blob存储在数据库的表中,并且该blob需要能够包含\
字符。所以一个用户输入\test
它需要回来,但它反过来作为一个标签后跟“est”
据我所知,发生的事情是,当用户输入并提交"\test"
时,它会被评估为“\ \ test”(删除空格,不能在这里放两个反斜杠并让它显示正确?)由客户端然后输入表。我可以验证在针对表调用的SQL中有两个反斜杠。在此步骤之后我在表格中查看它,然后返回"\test"
。当客户端再次加载它时,它会被评估到一个选项卡,后跟一个“est”。
我们认为第二个反斜杠是必要的,这样第一个反斜杠就会被转义而不会被评估,但这可能是导致问题的原因?我有点假设当查询运行时,其中一个反斜杠无论如何都会被转义,但我不确定该怎么做。我们的数据库中有什么东西可以处理我们需要注意的反斜杠吗?有没有办法处理这个我们没有考虑过的?
这是一个Postgres数据库,如果这有用的话。我会说我是初学者,在这类事情上是中间人,我正在查看文档,但是如果有人能指出我正确的方向,那将是非常有帮助的。
据我所知,通过亚马逊Aws,Postgres版本是9.3EDIT 我想我已经将这个问题跟踪到我们的php后端的一行,我真的不明白。我现在正在查看文档,并将此标记为已回答,因为我已经确认它不是SQL的问题。
答案 0 :(得分:0)
Blockquote反斜杠 - 默认情况下 - 在SQL中没有特殊含义。这可能是由处理这些值的任何代码(并将它们发送到数据库)引起的。有关在线示例,请参见此处:rextester.com/QLLYG57275 - a_horse_with_no_name
我接受这个作为答案,因为我已经验证了问题是构建SQL的后端代码,而不是数据库端如何处理SQL。