0

所以我有以下代码,它可以工作:

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 的一部分。

两条线有什么不同?在问题代码中,除名称之外的所有参数都是整数(名称是字符串),它们是从捕获错误输入错误的 int(raw_input(...)) 类型提示符获取的。

显然这是可行的,但是第二段代码出了什么问题?

谢谢,nkk

4

1 回答 1

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))
于 2012-06-14T22:10:35.417 回答