【发布时间】:2012-05-15 18:23:20
【问题描述】:
所以我有以下代码,它可以工作:
for count in range(0,1000):
L=[random.randint(0, 127),random.randint(0, 127),random.randint(0, 127)]
random.randint(0, 127)
name=''.join(map(chr,L))
number=random.randint(0,1000)
x.execute('insert into testTable set name=(%s), number=(%s)', (name, number))
在上面,x 只是我制作的光标(显然)。我只是从 ASCII 值和随机数创建一个随机字符串并将其写入我的数据库(这是一个纯粹的 BS 示例,所以我知道它有效)/
那么,
我在另一个脚本中:
x.execute('insert into rooms set \
room_name=(%s),\
room_sqft=(%s),\
room_type=(%s),\
room_purpose=(%s) ,\
room_floor_number=(%s)',
(name, sqft, roomType, room_use_ranking, floor))
我得到一个语法错误:第一行的语法无效,就在 x 处。 x.execute 的一部分。
这两行有什么不同?在问题代码中,除 name 之外的所有参数都是 int(名称是字符串),它们是从捕获错误输入错误的 int(raw_input(...)) 类型提示符获取的。
显然这是可行的,但是第二段代码出了什么问题?
谢谢, 恩克
【问题讨论】:
-
这是python语法错误信息,还是mysql语法错误信息?如果它是 python,它将是您编写执行函数调用的方式。如果它是 mysql,那么它将与 sql 完全相关(尽管可能在 python 中构建得很糟糕)。
-
我不知道。我该怎么说?这是出现错误时的图片:link。我认为这是python错误,但我不确定。抱歉...我正在同时学习 python 和 sql。
-
所以,我又做了一些调试。我在 mysql 终端中运行了
insert into rooms set room_name=5,room_sqft=4,room_type=4,room_purpose=4,room_floor_number=2,它运行良好。但是,当我将它放入 x.execute(..) (如上所述)时,我得到了同样的错误。是python,而不是mysql,不喜欢这种语法。
标签: python mysql mysql-python