【问题标题】:python MySQL Fetchone / Fetchall updatepython MySQL Fetchone / Fetchall 更新
【发布时间】:2015-05-26 14:44:11
【问题描述】:

在过去的 48 小时里我已经尝试了所有方法,但没有弄清楚我哪里出错了。

cursor.fetchone() 的工作原理如下:

row = cursor.fetchone()
for i in row:
        x = '13.5m'
        cursor.execute("""UPDATE table SET market_cap =%s WHERE symbol =%s""", (x,i))

但是 cursor.fetchall() 失败并说:

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ')' 附近使用正确的语法”)

【问题讨论】:

  • sintax 错误在括号附近,但您在查询中没有括号(至少我们可以看到)。它可能在变量 i 中。您能否在您的 cursor.execute(...) 之前添加一个打印行 (print i) 并告诉我们它打印的内容?
  • 打印以下内容 ('AAL.L',)

标签: python mysql fetchall


【解决方案1】:

我认为这里发生的事情是您传递了 tuple ,而 string 是预期的。您在评论中说i('AAL.L',),我认为cursor.execute 将其格式化为字符串。试试这个:

row = cursor.fetchone()
x = '13.5m' # this can be outside the iteration since it's the same value every time
for i in row:
    cursor.execute("UPDATE table SET market_cap =%s WHERE symbol =%s", (x, i[0]))

【讨论】:

    猜你喜欢
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多