2

我在 MySQL 中的更新语句似乎不起作用:

timeup = "UPDATE timeid set time=\"" + str(timeid) + "\""
c.execute(timeup)

我已经尝试了所有我认为可能有问题的方法,包括更改变量的类型(如您在上面看到的,我将其作为字符串)以及使用和不使用引号。

我什至可以打印出语句变成了什么:

UPDATE timeid set time="224215313716215808"

timeid 唯一的列和值分别是 time 和 0。

这个怎么不更新了 难道我做错了什么?

4

3 回答 3

2

你需要使用:

c.commit();

因为MySQLdb开始更新语句的事务。

于 2013-04-15T18:25:30.017 回答
1

尝试:

timeup = "UPDATE `timeid` SET `time`='" + str(timeid) + "';"
c.execute(timeup)

时间在 SQL 中可能是一个常数,因此使用简单的引号(我不知道它们是如何被调用的)确保您引用一个字段。并尝试'用于设置值并考虑添加分号。

你之前选择过数据库吗?

于 2012-07-14T19:01:27.783 回答
-1

尝试在查询末尾添加分号 (;) 并告诉我它是否有效。

于 2012-07-14T19:03:32.223 回答