PyMySQL 更新语句之 1064错误及解决方案

''' 
更新语句通常写法:
	update 表名 set 列名 = new_value where 列名 = value;
	
	动态占位符写法: update user_id set %s = %s where %s = %s;
'''
  alter_self_info = 'update user_id set %s = %s where %s = %s'
                    print(alter_self_info)
                    cursor.execute(query=alter_self_info,
                                   args=[
                                       set_column_name,
                                       new_value,
                                       column_name,
                                       where_column_name
                                   ]
                                   )
  • 运行结果提示:
修改数据时的异常:  (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id' = '123456' where 'id' = '123453'' at line 1")

syntax to use near ''id' 莫名奇妙的多了个单引号

解决方案:
	 # 根据输入完成更新操作
                    set_column_name = input('请输入字段名[set id =""]: ')  #
                    new_value = input('请输入修改的新值: ')
                    column_name = input('请输入字段名[set id =""]: ')
                    where_column_name = input('请输入依据的条件字段名[where ="123456"]: ')
# 这句解决上面的 1046 错误,最后正确更新
 cursor.execute('update user_id set %s = %s where %s = %s '%(str(set_column_name),new_value,column_name,where_column_name))
                    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值