所以我有以下代码,它可以工作:
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(name是一个字符串),它是从int(raw_input(...))类型提示中获取的,它捕获了错误的输入错误。
显然这有效,但第二段代码出了什么问题?
谢谢, NKK
答案 0 :(得分:0)
在x.execute之前的行上有问题。 (此时x是意外的)。你能链接更多的文件吗?
另外,尝试这种格式化,这可以通过使字符串成为一个blob来清除这种事情。 (您的语法高亮显示器也应将其显示为一个大的多行字符串!)
sql = '''
INSERT INTO rooms
SET room_name=(%s),
room_sqft=(%s),
room_type=(%s),
room_purpose=(%s),
room_floor_number=(%s)
'''
x.execute(sql, (name, sqft, roomType, room_use_ranking, floor))