sql - request.form和INSERT INTO格式

时间:2017-09-12 22:12:46

标签: python mysql

我正在尝试使用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

我很确定第一行中的格式有问题。但我无法弄清楚。

1 个答案:

答案 0 :(得分:1)

您传入的元组包含两个元素,而不是单个字符串。您需要将参数作为单独的参数传递

statement = "INSERT INTO Course(cId, cName) VALUES (%s, %s)"
params = (cId,cName)
result = conn.execute(statement, params)

仅仅因为呼叫使用逗号,并不意味着您可以将该逗号转移到元组并使其具有相同的含义。

可以使用conn.execute(*statement)语法解压缩元组,但由于你没有开始可变数量的参数,所以在这里过度杀戮。