def course_id(enrolment_id):
con = None
try:
con = lite.connect('C:/Users/Ethan/Desktop/SAT/SiemensAssessmentTool.db')
with con:
cur = con.cursor()
cur.execute("SELECT course_id FROM Enrolment WHERE enrolment_id = '"+ enrolment_id+ "';")
rows = cur.fetchall()
courseids=[]
for row in (rows):
courseids = row
return courseids
finally:
if con:
con.close()
我试图用这段代码检索一些整数,因为我将把它连接到另一个函数,以便从数据库中找到其他数据。我得到的错误是当我将它与其他函数连接时:
^{pr2}$我得到一个错误:
cur.execute("SELECT course_id FROM Enrolment WHERE enrolment_id = '"+ enrolment_id+ "';")
TypeError: Can't convert 'list' object to str implicitly
我想这可能和course\u id函数有关,但我不确定。。提前谢谢你
显然,问题是
enrolment_id
是一个列表,请检查您将什么作为参数传递到course_id()
中。在作为补充说明,您不应该通过字符串连接构造查询-这会导致类型转换问题,并使您的代码容易受到SQL injections-参数化查询的影响:
在如何获得查询结果方面还有一个问题。假设您想从数据库中获得一个课程ID,请使用
^{pr2}$fetchone()
:相关问题 更多 >
编程相关推荐