当前位置: 首页 > 面试题库 >

必须在Tsql中转义的字符

周翰
2023-03-14
问题内容

我一直在寻找必须在ms
sql服务器中转义的特殊字符列表,但找不到针对我建议使用参数化查询的类似问题的大部分答案。我已经在做,但是我正在使用的框架没有为我做任何逃避。

因此,我以为我会尝试一下,看看哪个失败了....我尝试了一个简单的查询

select * from x where value = '<characters>'

在这样的查询中,我尝试了几乎可以在键盘上找到的所有字符,并且所有这些字符似乎都可以正常工作……除了单引号..那个失败了。

因此,我想知道无效的字符列表,这些字符必须在ms sql服务器-tsql中进行转义,并且不想冒只转义单引号并留下可能引起麻烦的其余字符的风险。

感谢你的帮助


问题答案:

需要在字符串中转义的唯一字符是单引号(将两个单引号一起使用)。否则,它是一个字符串,而t-sql不会再大惊小怪了。

如果您使用的是LIKE语句,请参见此SO主题在SQLServer中转义字符串,以便可以在LIKE表达式中安全使用

顺便说一句,任何不让我使用参数的框架,如果不能为我适当地逃避某些东西,都是很难的。尝试手动清理字符串输入就像依赖于pull方法。最终它会得到你的。



 类似资料:
  • 我正在寻找必须在ms sql服务器中转义的特殊字符列表,但找不到我看到的类似问题的大部分答案,建议使用参数化查询...我已经在做了,但我使用的框架不会为我做任何转义。 因此,我想我会试一试,看看哪一个失败了......我尝试了一个简单的查询 在这样的查询中,我尝试了键盘上能找到的几乎所有字符,所有字符似乎都能正常工作。。。除了单引号。。那一个失败了。 因此,我想知道ms sql server-ts

  • 问题内容: 我厌倦了总是试图猜测,()[]{}|在使用许多正则表达式实现时是否应该转义’ ‘等特殊字符。 它与Python,sed,grep,awk,Perl,重命名,Apache,find等不同。是否有任何规则集可以告诉我何时以及何时不应该转义特殊字符?它是否取决于正则表达式类型,例如PCRE,POSIX或扩展正则表达式? 问题答案: 实际上,您必须转义哪些字符以及您必须避免转义哪些字符确实取决

  • 问题内容: 我正在使用MySQL API的功能 根据文档,它转义以下字符: 现在,我查看了OWASP.org的ESAPI安全库,并在Python端口中包含以下代码(http://code.google.com/p/owasp- esapi-python/source/browse/esapi/codecs/mysql。 py ): 现在,我想知道是否真的需要转义所有这些字符。我知道为什么%和_在那

  • 问题内容: 考虑此查询(此处为演示) 输出: 题: 为什么 (=)* 不需要额外的 (\) ,而(例如)额外的 \** 则需要?很明显,MySQL对 (IKE \) 使用 (test \\) 转义了 (test \\), 然后使用 (test \\\\)进行了** 转义。 * 表信息: 问题答案: 默认情况下用作转义字符。 从手册中获得: 由于MySQL在字符串中使用C转义语法(例如,“ \ n”

  • 问题内容: 在我的Ajax请求(使用jQuery)中,我返回了JSON响应。 所以json.Html将有一个HTML字符串,我想在div内追加。 在服务器端,我是否必须转义HTML? 在我的MVC动作中,我返回: 问题答案: 另一种解决方案是仅返回HTML并使用jQuery的: 不过,按照自己的方式进行操作,只需转义双引号和反斜杠即可。 该规范易读且简短。

  • 问题内容: 有没有一种方法可以在python中声明一个字符串变量,以使其中的所有内容都自动转义,或者具有其原义字符值? 我 不是 问如何用斜杠将引号转义,这是显而易见的。我要的是一种通用的方式,使所有内容都以字符串文字形式生成,这样我就不必手动检查并转义非常大的字符串的所有内容。有人知道解决方案吗?谢谢! 问题答案: 原始字符串文字: