2016-12-28 86 views
-1
select * from files where filename=\'this.txt\'' 

我看着MySQL is not inserting a backslash,无法看到为什么\正在下降的确切原因时下降。为什么一个反斜杠得到运行MySQL查询

长话短说(我知道安全隐患......)上面存储在一个单元格中。然后单元格的内容被执行。我的问题是为什么不存在反向斜线存在的问题?

总之,为什么当我想到这工作的正确方法是

select * from files where filename='this.txt' 

的PHP来查询是如何跑到

$result = mysqli_query($db,$query) 
+2

\通常是一个转义字符。你尝试过把它们翻倍吗?试试'filename ='\\ this.txt \\''而不是 – Takarii

+0

@Takarii你不明白这个问题。问题是:“为什么这项工作”... – arkascha

+0

你的问题是不明确的。什么代表第一个代码片段?这是MySQL服务器收到的查询吗?它是你的PHP代码的一个片段吗?这种方式无效。请使用帮助潜在响应者为您提供答案的信息更新您的问题。并阅读[关于字符串的PHP文档](http://php.net/manual/en/language.types.string.php)。 – axiac

回答

0

转义字符是平时工作的同时把它两次。

如果你想存储反斜杠,那么你可以通过添加更多的\\来逃脱它。

您将在这里找到完整的参考

http://dev.mysql.com/doc/refman/5.7/en/string-literals.html

+0

因此,使用'SOMETHING'\意味着当查询运行时,它被视为'SOMETHING'? – pee2pee

+0

是的,我知道 –

+0

我在问一个问题 – pee2pee