2015-06-19 67 views
1

我正在使用Python的mySQLDB將變量傳遞給Update Set Statement。所有的變量都在工作中傳遞,除了更新字段來放置變量。我真的不知道爲什麼會發生這種情況。如果有人能向我解釋並給我一個可能的解決方案,我會很感激。 下面我輸入我正在談論的代碼。註釋掉線完美的作品(雖然只更新一個字段)和註釋掉線是什麼,我試圖利用要經過各個領域麻煩在mySQLDB for python中爲列名稱傳遞變量

for y in range(1,col_count): 
    field = 'field' + str(y) 
    print field 
    #cur.execute("UPDATE SQLDATABASE SET field1= %s WHERE file_name = %s AND    
    #slides_name = %s;",(temp_list[y],filename,temp_list[0])) 
    cur.execute("UPDATE SQLDATABASE SET %s= %s WHERE file_name = %s AND 
    slides_name = %s;",(field,temp_list[y],filename,temp_list[0])) 

回答

2

參數佔位符只能用插入的列名,而不是表格名稱等(見the docs)。 也許試試這個:

cmd = 'UPDATE SQLDATABASE SET ' + field + ' = %s WHERE file_name'\ 
     ' = %s AND slides_name = %s;' 
cur.execute(cmd, (temp_list[y],filename,temp_list[0])) 
+0

非常感謝你的工作,回想起來似乎非常明顯! –

+0

非常歡迎!很高興爲你工作。 – xnx