快捷搜索: 王者荣耀 脱发

[Python] [Err] 1054 - Unknown column ‘id‘ in ‘where clause‘

在用python想更新数据库的数据时,发现无法更新。

这里提供一个不容易想到的错误:非法字符

sql_ = "UPDATE page SET keyword1 = %s, keyword2 = %s WHERE id = %d" % (list_keyword1[i],list_keyword2[i],id_list[i])

我将其打印出来:

貌似也没啥问题。

于是我复制sql语句到Navicat中运行。

发现问题在sql语句中的id

但是与我设计表的id是一样的啊

我联想到我的数据库数据是从csv中导进来的,当时我还检查了字段名,当时id的字段名就有些奇怪。

结果的第一个字段名为 ufeffid,简而言之,ufeff为非法字符。

因此我们在写sql时应避免直接写字段名

更有效的方法为加上表名提示,如:

此时在Navicat可以运行了。

我们将其复制到pycharm中:

更改sql语句,最后如下:

sql_ = "UPDATE page SET keyword1 = %s, keyword2 = %s WHERE page.`id` = %d" % (list_keyword1[i],list_keyword2[i],id_list[i])

当然,pycharm上显示的字符为乱码

此时正常运行。

经验分享 程序员 微信小程序 职场和发展