2

我有一个带有字段的表

TABLE_PASTE(
      user_text longtext NOT NULL,
      number integer NOT NULL
 )

我正在尝试TABLE_PASTE使用 MySQLDb 驱动程序从 python 在此表中插入一行。

text="large_text"
value = 1
cursor.execute("Update TABLE_PASTE set user_text = ? where number = ?",(text,value))

收到此错误

query = query % db.literal(args)
TypeError: not all arguments converted during string formatting
4

2 回答 2

11

MySQLdb如果您想使用类似于Python 2.x 中的字符串格式的参数化(技术上在 python 中不存在准备好的语句)语句。

cursor.execute("Update TABLE_PASTE set user_text = %s where number = %s",(text,value))

请注意,即使您value是一个,int您仍然必须%s在查询中使用它来格式化它。

MySQLdb 你可以在这里找到一个很好的教程。

于 2013-08-08T14:46:46.590 回答
-7

simply you can just use

cursor.execute("Update TABLE_PASTE set user_text = {} where number = {}" .format(text,value))

where format function will format your input accordingly whether its an int or a string!

于 2013-11-18T09:28:25.083 回答