【发布时间】:2018-05-24 17:16:08
【问题描述】:
我在 PostgreSQL 中使用 SQLAlchemy,我需要生成类似的语句
SELECT * FROM entities WHERE name LIKE '%input%';
LIKE 字符串的“输入”位来自用户。我希望用户能够包含文字 % 和 _ 字符并让它们完全匹配,显然我需要确保查询不允许 SQL 注入。在 SQLAlchemy 中执行此操作的惯用方法是什么?我试过了
entities = session.query(Entity).filter(Entity.name.like('%:text%')) \
.params(text=user_input).all()
但这似乎不起作用——它毫无怨言地执行了,但没有匹配应该匹配的行。
【问题讨论】:
标签: python sql sqlalchemy sql-injection sql-like