python中的mysql.connector/for-loop中的cursor仅适用于表的第一行

icomxhvb  于 2024-01-05  发布在  Mysql
关注(0)|答案(1)|浏览(115)

我有一个表,我想翻译一行的“topic”和“review”列,并将整个表及其翻译存储到一个新表中。似乎for循环没有遍历输入表的所有行。只有第一行存储到新表中。为什么?

  1. database = mysql.connector.connect(user='root', password='root', host='localhost', database='test')
  2. DBcursor = database.cursor(buffered=True)
  3. query = ("SELECT * FROM test_de")
  4. DBcursor.execute(query)
  5. for (id, user_name, date, country, version, score, topic, review, url) in DBcursor:
  6. topic_trans = translate(topic, 'en')
  7. review_trans = translate(review, 'en')
  8. add_translation = ("INSERT INTO test_de_en(id, user_name, date, country, version, score, topic, review, url)"
  9. "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)")
  10. translation_data = (id, user_name, date, country, version, score, topic_trans, review_trans, url)
  11. DBcursor.execute(add_translation, translation_data)
  12. database.commit()
  13. DBcursor.close()
  14. database.close()

字符串

bvuwiixz

bvuwiixz1#

您在for循环内外都使用了变量名“DBcursor”,因此您正在修改变量并丢失resultSet。
例如,如果在外部使用DBcursor1,在内部使用DBcursor2,它应该可以工作。

相关问题