【发布时间】:2011-08-31 06:20:29
【问题描述】:
当我尝试插入多个变量时,MySQL 和 Python 的 MySQLdb 出现问题。
我有一个包含三个字段的表 wordurl。第一个是 auto_increment ID,第二个和第三个应该保存这些值。第二个和第三个字段被命名为 word_id 和 url_id。
这是代码。
cursor.execute("INSERT INTO wordurl (word_id, url_id) VALUES (%s, %s)", (word_temp_id, url_temp_id))
当我尝试只插入一个值时,代码有效,两个无效。
错误信息:
(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '),), (('2',),))' at line 1")
我还尝试了在语句周围加上三个勾号、带和不带括号的变量、不带字段名称和包含第一个 id 字段。我还尝试了 C-style-printf-stuff % (这不聪明!)。没有任何效果。
还有你们,stackoverflow 上光荣的人,你们是我最后的希望 :)
MySQL-Server 在 FreeBSD 8.2 上是 5.5.9。 OSX Lion 上的 Python 版本为 2.7:82508
提前致谢!
史蒂芬
更新:我使用 cursor.fetchall() 和 cursor.fetchone() 来获取 ID。也许这些信息很重要。
【问题讨论】:
-
似乎 url_temp_id 为空
-
不,不是。如果我注释掉该语句并用 print 替换它,它会显示
(((233L,),), ((3L,),))有两个值。但是括号太多了吧?
标签: python mysql mysql-python