python 插入mysql 数据库报错

sql3 = "update  account set account_fullname=%s,account_id_from_media=%s, funds=%s,agency_id=8,media_id=4 where media_id=4 and account_id_from_media=%s;" %(
                 manage_page_data[i-9], manage_page_data[i-9], manage_page_data[i-9 +1] ,manage_page_data[i - 9 + 1])
                 
                 

pymysql.err.InternalError: (1054, u"Unknown column 'u5149u6c47u4e91u6cb9' in 'field list'")

报错这个 对应的 manage_page_data[i-9] ,请问这里改成什么类型?才可以运行成功,谢谢 图片描述

阅读 6.5k
4 个回答

建议使用参数化执行sql语句

sql3 = "update account set account_fullname=%s, account_id_from_media=%s, funds=%s, agency_id=8,media_id=4 where media_id=4 and account_id_from_media=%s;" 

cursor.execute(sql3, (manage_page_data[i-9], manage_page_data[i-9], manage_page_data[i-9 +1] ,manage_page_data[i - 9 + 1]))

自己输出一下,你那个sql是啥。。。。%s 你没加在引号中。

sql3 = "update account set account_fullname='%s',account_id_from_media='%s', funds='%s',agency_id=8,media_id=4 where media_id=4 and account_id_from_media='%s';" %(manage_page_data[i-9], manage_page_data[i-9], manage_page_data[i-9 +1] ,manage_page_data[i - 9 + 1])

你的语句中%s 是不是没有格式化到?好好检查你的sql,99%都是你的sql语句写错了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题