带有变量的GAE gqlquery

1 google-app-engine gqlquery

如果我想运行一个带有变量的GqlQuery我已经设置了可能吗?

例如:

myNumber = 4

myResult = db.GqlQuery("SELECT * from myData WHERE filter = myNumber")
Run Code Online (Sandbox Code Playgroud)

这导致:

解析错误:符号处的无效WHERE条件

我这样做错了吗?谢谢你的时间.

Bry*_*yan 6

根据Google Appengine文档,您的代码可能如下所示:

myNumber = 4
myResult = db.GqlQuery("SELECT * FROM myData WHERE filter = :num", num=myNumber)
Run Code Online (Sandbox Code Playgroud)

要么

myNumber = 4
myResult = db.GqlQuery("SELECT * FROM myData WHERE filter = :1", myNumber)
Run Code Online (Sandbox Code Playgroud)

取决于您是否要使用命名或位置变量.

  • @ DaveW.Smith不!这是引入GQL注入漏洞的好方法,并且与正确的参数替换完全没有任何优势. (2认同)
  • @ DaveW.Smith你是对的 - 但它仍然被打破,一个坏主意,并开创了一个不好的先例. (2认同)