【发布时间】:2012-03-24 16:42:13
【问题描述】:
MySQL documentation 表示应该是\'。但是, scite 和 mysql 都显示 '' 有效。我看到了,它有效。我该怎么办?
【问题讨论】:
-
你说的是
''还是\'是否正确? -
\'是 MySQL 特有的,而''是 ANSI SQL 兼容的,如果我没记错的话 -
取决于 SQL 的实现;- ' '\'' , ' \'' ,有时 '[ ']'' 将允许从代码中分离出来。除此之外,任何数量的 unicode ' 替换都将绕过此检查。这里的整个游戏都在滥用 '' 基于转义的质量,它要求最终的 ' 计数是偶数而不是奇数。如果通过将多个转义方法相互混合而最终变得奇怪,您可以击败转义并注入原始 SQL。故事的寓意:永远不要使用字符串插值,总是使用准备好的语句。