[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上显示的字符为乱码

 此时正常运行。

猜你喜欢

转载自blog.csdn.net/qq_51533157/article/details/128933771
今日推荐