我将SQL语句构造为字符串文本,并将其传递给SQLAlchemy execute方法。 为了避免SQL注入,我使用了占位符,但效果不佳。 当我用特殊的词,比如,“!,则变为错误。 p、 我用烧瓶炼金术
这是密码。在
sql = ""
sql += "SELECT count(*) "
sql += "FROM mytable, to_tsquery('english',%(kstr)s) query "
sql += "WHERE query @@ tsv "
res = db.engine.execute(sql, kstr = keyquery)
keyquery是搜索词,如果keyquery包含像“!,&' 它变成了错误。。。。在
这是一条错误消息,由于我的机器环境,它包含日语。在
^{pr2}$现在,我把这些话都说出来了。在
keyquery = .replace("!'","").replace('$','')......
但是,通过这种方式,我无法搜索包含特殊单词的单词,比如“USA!” 我怎样才能解决这个问题?在
尝试
plainto_tsquery()
而不是to_tsquery()
。相关的PostgreSQL full text search documentation。在相关问题 更多 >
编程相关推荐