正如在标题中提到的,当我试图执行一个预准备语句时,我得到了这个错误。完整的错误是:
RuntimeError: No matching overloads found for prepareStatement in find. at native\common\jp_method.cpp:127
据我所知,很可能是因为我试图使用一个预准备语句,编译器无法找到重载?占位符的东西。
程式码片段:
curs = self.dbconn.cursor()
sqlLogin = ("SELECT name,email FROM BENUTZER where name=? and email=?", ( benutzerObjekt.name,benutzerObjekt.email))
curs.execute(sqlLogin)
错误似乎发生在curs.execute(sqlLogin),调试时在traceback中向我显示了这个错误。
我尝试使用html输入的输入,它存储在benutzerObjekt.name和benutzerObjekt.email中,作为select SQL语句的输入。因此,很可能是SQL语句或语句的执行出错了,调试时会给语句加下划线。我使用db2。
提前感谢!
1条答案
按热度按时间vltsax251#
您需要将参数作为
cursor.execute
中的第二个参数传递。现在,您的查询是两个项的嵌套元组,第一个项是字符串,第二个项是两个值的元组。请考虑分隔函数调用的参数:
或者,您可以使用星号
*
来解压缩嵌套元组: