在写sql时我们难免会遇到一些sql语句的拼接,然而这种拼接很容易造成拼接的语句在执行时语法错误。
在数据库中默认字符串是被单引号包裹,但我们不指定他包裹的范围将会产生你意想不到的错误。
例如:
上面的代码直接通过StringBuild拼接为sql语句,初看没有什么错,但在执行的时候则会发现从addFormCode到语句最后都被一个单引号包裹了。达不到你想要的结果。
对于只包含双引号的字符串可以用如下方式解决。
即让你的字符串变量被单引号包裹,那么数据库就会将一个双引号包裹的内容当作一个整体。
但当你的字符串中既有单引号又有双引号时则不能再用上诉方式了,最好的解决方案是用占位符代替变量。
通过?占位符占位,再在执行语句前指明占位符的值。这种方式也是最好的解决方式,推荐sql都使用该方式编写。