gpt4 book ai didi

python - Python 中的 MySQL 语句 : Variables don't work

转载 作者:行者123 更新时间:2023-11-29 03:45:00 27 4
gpt4 key购买 nike

当我尝试插入多个变量时,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。也许这个信息很重要。

最佳答案

关于您的更新:

据我所知:fetchall() 返回一个元组,里面有元组。里面的那些元组是你从 fetchone() 得到的。你可以想象一下

fetchall() = (fetchone(), fetchtwo(), ...)

并且 fetchone 还返回一个具有实际变量值的元组。这就是为什么不能简单地插入 fetchall() 的返回值的原因。

澄清一下:您粘贴的插入语句在填写 max_price 值时看起来像这样:

c.execute("""SELECT spam, eggs, sausage FROM breakfast WHERE price < %s""", (5,))

所以第一个 %s 被替换为元组的第一个元素 (5)。您的插入语句如下所示:

cursor.execute("INSERT INTO wordurl (word_id, url_id) VALUES (%s, %s)", (((233L,),), ((3L,),)))

我再清楚不过了。

关于python - Python 中的 MySQL 语句 : Variables don't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7253276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com