尝试在简单的sql查询中使用命名参数。在为参数分配值后,测绘机名称将标记为未定义(NameError)
相同的查询可以很好地与位置参数一起使用 尝试使用不同的参数名称在不同的表上 直接传递值,而不是通过变量传递
import sqlite3
myConn = sqlite3.connect("testDB.db")
myCursor = myConn.cursor()
myCursor.execute(
"SELECT CourseName FROM Courses WHERE CourseName =:course",{'English':course})
print(myCursor.fetchone())
我应该只从数据库中检索一行。 相反,我收到以下错误消息
line 14, in <module>
myCursor.execute("SELECT CourseName FROM Courses WHERE CourseName =:course",{'English':course})
NameError: name 'course' is not defined
答案 0 :(得分:0)
execute查询的secon参数是字典。键是SQL查询中使用的命名参数(它也需要用引号引起来),该键的值是在代码中其他地方实例化的变量。
import sqlite3
myConn = sqlite3.connect("testDB.db")
myCursor = myConn.cursor()
query = "SELECT CourseName FROM Courses WHERE CourseName=:course"
test = "English"
myCursor.execute("SELECT CourseName FROM Courses WHERE CourseName =:course",{'course':test})
print(myCursor.fetchone())