用于更新SQL查询的Python语法

时间:2013-10-21 15:23:53

标签: mysql python-2.7 mysql-python

我想用以下查询更新表。我在下面遇到了多个错误。编写下面的查询的正确语法是什么

 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不存在,这是不对的,因为它确实存在,我相信错误是其他错误的语法。

1 个答案:

答案 0 :(得分:2)

您无法使用参数化查询指定数据库,表或字段名称等元数据。您必须使用普通字符串格式替换它们,然后使用结果字符串作为参数化查询。

...("""UPDATE `%s` SET `content`=%%s WHERE link=%%s""" % (feed,), ...)