我正在尝试使用request.form从用户获取数据并通过INSERT INTO将其保存到数据库... VALUES
我的代码是
statement = "INSERT INTO Course(cId, cName) VALUES (%s, %s)" , (cId,cName)
result = conn.execute(statement);
conn.commit()
conn.close()
代码编译但是当它在web上运行时,它会给我一个值错误。错误信息是
ValueError: operation parameter must be str or unicode
我很确定第一行中的格式有问题。但我无法弄清楚。
答案 0 :(得分:1)
您传入的元组包含两个元素,而不是单个字符串。您需要将参数作为单独的参数传递:
statement = "INSERT INTO Course(cId, cName) VALUES (%s, %s)"
params = (cId,cName)
result = conn.execute(statement, params)
仅仅因为呼叫使用逗号,并不意味着您可以将该逗号转移到元组并使其具有相同的含义。
你可以使用conn.execute(*statement)
语法解压缩元组,但由于你没有开始可变数量的参数,所以在这里过度杀戮。