Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用反斜杠处理数据库表条目?_Php_Sql_Postgresql_Backslash - Fatal编程技术网

Php 使用反斜杠处理数据库表条目?

Php 使用反斜杠处理数据库表条目?,php,sql,postgresql,backslash,Php,Sql,Postgresql,Backslash,我们遇到了一个奇怪的边缘情况,我们试图在数据库的一个表中存储一个json blob,该blob需要能够包含\字符。因此,用户要在\test中输入,它需要准确地返回,但返回时是一个选项卡,后跟“est” 据我所知,当用户输入并提交“\test”时,客户端会将其计算到“\\test”(删除空格,不能在此处放置两个反斜杠并正确显示?),然后将其输入表中。我可以验证在针对表调用的SQL中是否有两个反斜杠。当我在这个步骤后的表格中查看它时,它返回到“\test”。当客户端再次加载它时,它将被计算到一个选项

我们遇到了一个奇怪的边缘情况,我们试图在数据库的一个表中存储一个json blob,该blob需要能够包含
\
字符。因此,用户要在
\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'
这样的常规字符串,但这是应用程序代码可以做到的(请不要将手册用于过时和不受支持的版本)