pgsql查询里面包含了单引号的问题


 postgresql查询关键字有时候会遇到英文单引号的情况,比如你要查询一个英文句子,How's your ....?
这里会发现遇到了一个pg查询会报错
  PG::SyntaxError: ERROR:  syntax error at or near "s"

(')单引号是postgresql中表示值的符号。

可以通过下面的正则处理下,
无论有多少个单引号,一律换成 两个单引号'',这样就符合pgsql的规范。
考虑到各种意外的情况,不能只考虑一个单引号的问题,凡是奇数个单引号进入查询语句都会有问题。所以相对正确的方式是:

term = term.gsub(/'+/, "''") 

这也不是最好的,因为正则我也不知道如何判断奇数个。。。
姑且这样处理了。
阅读量: 740
发布于:
修改于: