gpt4 book ai didi

python - 在 mySQLDB for python 中为列名传递变量时遇到问题

转载 作者:行者123 更新时间:2023-11-29 04:40:12 24 4
gpt4 key购买 nike

我正在使用 Python 的 mySQLDB 将变量传递给 Update Set 语句。除了更新字段以放入变量的变量外,所有传递的变量都有效。我真的不知道为什么会这样。如果有人能向我解释并给我一个可能的解决方案,我将不胜感激。下面我输入我正在谈论的代码。注释掉的行完美地工作(尽管它只更新一个字段),而未注释的行是我试图用来遍历每个字段的内容

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]))

最佳答案

参数占位符只能用于插入列名,不能用于表名等(参见 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]))

关于python - 在 mySQLDB for python 中为列名传递变量时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30945217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com