0

次のクエリでテーブルを更新したいと思います。以下で複数のエラーが発生しています。以下のクエリを書くための正しい構文は何ですか

 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 does not exist でした。これは存在するので正しくありません。エラーは構文に問題がある別のものだと思います。

4

1 に答える 1

2

パラメーター化されたクエリを使用して、データベース、テーブル、フィールド名などのメタデータを指定することはできません。通常の文字列フォーマットを使用してそれらを置換し、結果の文字列をパラメーター化されたクエリとして使用する必要があります。

...("""UPDATE `%s` SET `content`=%%s WHERE link=%%s""" % (feed,), ...)
于 2013-10-21T15:28:17.103 に答える