DAL executesql参数化查询

DAL executesql parameterized queries

我一直在找,但到处都找不到我要找的信息。

如何在 web2py 中使用 DAL 通过自定义 sql 使用参数化查询?例如,我有以下查询:

sql = "SELECT * FROM Users WHERE Username = %s"

我这样称呼它

user = db.executesql(sql, username, as_dict=True)

我认为这会使用参数进行查询,但如果我传递“' or 1=1; --;”作为用户名,代码崩溃说它无效 SQL.

使用 DAL 对自定义 SQL 使用参数化查询的正确方法是什么,因为这显然不是我想的那样转义?

谢谢,

特拉维斯

使用placeholders参数:

user = db.executesql(sql, placeholders=(username,), as_dict=True)