这个参数化INSERT查询语法有什么问题?

我试图导入到MS访问数据库的Excel数据,但它给了我'语法错误定义'

码:

for col_index in range(0,work_sheet.ncols): column_value = work_sheet.cell(0,col_index).value for row_index in range(1, work_sheet.nrows): row_value = work_sheet.cell(row_index,col_index).value # For the same column, fetch the row data repeatedly db.Execute("INSERT INTO my_table" [column_value] "VALUES(" & row_value & ")") 

错误:

 C:\Data\Database>c:\python27\python.exe My_First_DB_Code.py File "My_First_DB_Code.py", line 32 db.Execute("INSERT INTO my_table" [column_value] "VALUES(" & row_value & ")") SyntaxError: invalid syntax 

注意:我已经从Excel工作表中导入了列名,现在试图逐列地导入行值

你需要使用Python的string连接语法,而不是SQL的。 尝试单独生成SQLstring,然后在进行数据库调用之前打印它以确保它是正确的:

 query_string = "INSERT INTO my_table" + str(column_value) + " VALUES( " + str(row_value) + " )" print(query_string) # db.Execute(query_string) # uncomment when you know the query is correct 

上面的代码假定你想连接my_tablecolumn_value ,它们之间没有空格。 如果像HansUp 所说的那样 ,你正试图input一个字段名称,那么就像这样设置query_string:

 query_string = query_string = "INSERT INTO my_table ([" + str(column_value) + "]) VALUES ('" + str(row_value) + "')"