gpt4 book ai didi

python - SQLAlchemy 占位符不能正常工作

转载 作者:行者123 更新时间:2023-11-29 13:36:28 26 4
gpt4 key购买 nike

我将 SQL 语句构造为字符串文字,并将其传递给 SQLAlchemy 执行方法。为了避免 SQL 注入(inject),我使用了占位符,但效果不佳。当我使用像“!, &”这样的特殊词时,它就变成了错误。p.s 我用的是 flask-sqlalchemy

这是代码。

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 包含特殊词如'!, &'它变成了错误....

这是错误信息,由于我的机器环境,它包含日文。

ProgrammingError: (ProgrammingError) tsquery内の構文エラー: "USA!"
"SELECT count(*) FROM mytable, to_tsquery('english',%(kstr)s) query WHERE query @@ tsv " {'kstr': u'USA!'}

现在,我像这样跳过 NG 词。

keyquery = .replace("!'","").replace('$','')......

但是,通过这种方式,我无法搜索包含特殊词的词,例如“美国!”我该如何解决这个问题?

最佳答案

尝试使用 plainto_tsquery() 而不是 to_tsquery()。相关PostgreSQL full text search documentation .

关于python - SQLAlchemy 占位符不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9676717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com