请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

扩展尝试删除数据库操作,报错not all arguments converted during byt

扩展尝试了删除操作,删除标题为“华为12”并且id大于46的内容。

刚开始这样写执行SQL:
cursor.execute( sql, ( ‘华为12’ ) )
或者
cursor.execute( sql, ‘华为12’ )
都会报错:
MySQLdb._exceptions.ProgrammingError: not all arguments converted during byt

 

经过百度后,发现要这样写,可以正确删除相应内容:

cursor.execute( sql, ( '华为12 ', ) )
大意是%操作符只能直接用于字符串、列表、元组,因此要制造一个元组。

不知我的理解和操作是否正确


sql = (
                "DELETE  FROM `news` WHERE `title`= %s AND `id` > 46 "
            )
        # 获取连接和cursor
        cursor = self.conn.cursor()
        # 执行SQL
        # 提交数据到数据库
        cursor.execute(sql, ('华为12',))
        # cursor.execute(sql, ('华为13', '科技新闻8', '如果你是一位英国智能手机用户', '推荐', 'dw'))

正在回答 回答被采纳积分+3

1回答

NavCat 2019-06-28 12:42:08

是因为sql中有很多%s一样的参数,后面元祖(tuple)就是这些参数对应的值

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信