我想用以下查询更新表。我在下面遇到了多个错误。编写下面的查询的正确语法是什么
cursor.execute("""UPDATE `%s` SET `content`=%s WHERE link=%s""", (feed,cnews,news_url))
运行上述内容时出现的错误是
Traceback (most recent call last):
File "digger_1.py", line 34, in <module>
cursor.execute("""UPDATE `%s` SET `content`=%s WHERE link=%s""", (feed,cnews,news_url))
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1146, "Table 'newstracker.'NDTV'' doesn't exist")
我选择的错误是表newstracker.NDTV不存在,这是不对的,因为它确实存在,我相信错误是其他错误的语法。
答案 0 :(得分:2)
您无法使用参数化查询指定数据库,表或字段名称等元数据。您必须使用普通字符串格式替换它们,然后使用结果字符串作为参数化查询。
...("""UPDATE `%s` SET `content`=%%s WHERE link=%%s""" % (feed,), ...)