[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上显示的字符为乱码
此时正常运行。