Php 使用反斜杠处理数据库表条目?
我们遇到了一个奇怪的边缘情况,我们试图在数据库的一个表中存储一个json blob,该blob需要能够包含Php 使用反斜杠处理数据库表条目?,php,sql,postgresql,backslash,Php,Sql,Postgresql,Backslash,我们遇到了一个奇怪的边缘情况,我们试图在数据库的一个表中存储一个json blob,该blob需要能够包含\字符。因此,用户要在\test中输入,它需要准确地返回,但返回时是一个选项卡,后跟“est” 据我所知,当用户输入并提交“\test”时,客户端会将其计算到“\\test”(删除空格,不能在此处放置两个反斜杠并正确显示?),然后将其输入表中。我可以验证在针对表调用的SQL中是否有两个反斜杠。当我在这个步骤后的表格中查看它时,它返回到“\test”。当客户端再次加载它时,它将被计算到一个选项
\
字符。因此,用户要在\test
中输入,它需要准确地返回,但返回时是一个选项卡,后跟“est”
据我所知,当用户输入并提交“\test”
时,客户端会将其计算到“\\test”(删除空格,不能在此处放置两个反斜杠并正确显示?),然后将其输入表中。我可以验证在针对表调用的SQL中是否有两个反斜杠。当我在这个步骤后的表格中查看它时,它返回到“\test”
。当客户端再次加载它时,它将被计算到一个选项卡中,后跟一个“est”
我们的印象是,第二个反斜杠是必要的,这样第一个反斜杠将被转义,而不是被评估,但这可能就是导致问题的原因?我有点假设当查询运行时,其中一个反斜杠会被转义,但我真的不确定该怎么办。我们的数据库在处理反斜杠时是否存在我们需要注意的问题?有没有我们没有考虑过的处理方法
这是一个Postgres数据库,如果有帮助的话。我想说我是这方面的新手到中级,我正在查阅文档,但如果有人能给我指出正确的方向,那将非常有帮助
据我通过亚马逊Aws所知,Postgres的版本是9.3
编辑
我想我在我们的php后端中找到了一行我不太理解的问题。我现在正在查看文档,并将其标记为已回答,因为我已经验证了这不是SQL的问题
块引用反斜杠-默认情况下-在SQL中没有特殊含义。这可能是由处理这些值(并将其发送到数据库)的任何代码引起的。在线示例见:rextester.com/QLLYG57275–一匹没有名字的马
我接受这个答案,因为我已经验证了问题在于没有后端代码来构造SQL,而不是在数据库端如何处理SQL。反斜杠默认情况下在SQL中没有特殊意义。这可能是由处理这些值(并将其发送到数据库)的任何代码引起的。请看这里的在线示例:了解确切的SQL语句和PostgreSQL版本会很有趣。我是否误解了postgres文档?在4.1.2.2中,似乎暗示使用\character可以接受类C转义,但仅适用于以
E'
开头的“转义”(非标准)字符串,例如E'\t'
,而不是像'\t'
这样的常规字符串,但这是应用程序代码可以做到的(请不要将手册用于过时和不受支持的版本)