为什么 SQLite 尝试使用表单条目作为列名?
Why is SQLite trying to use form entry as a column name?
我才编程几个月所以如果这很明显请原谅我。
我有一个使用 wtforms 构建的本地网站,我正在尝试做一些简单的事情,比如获取表单数据并将其添加到现有的本地数据库中。
我在测试表单时总是遇到错误。似乎 sqlite 正在尝试使用 form.field.data entry
作为列名。有人可以告诉我如何解决这个问题吗?
代码如下:
if request.method == 'POST' and form.validate():
name = form.Name.data
street = form.StreetAddress.data
city = form.City.data
zipcode = str(form.Zip.data)
bedroom = str(form.Bedroom.data)
bathroom = str(form.Bathroom.data)
sqFt = str(form.SqFt.data)
price = str(form.Price.data)
typeID = str(form.TypeID.data)
imageLink = str(form.ImageLink.data)
command = """INSERT INTO Rentals(ID,Name,StreetAddress,City,Zip,Bedroom,Bathroom,SqFt,PriceMonth,TypeID,ImageLink)
VALUES({e},{f},{g},{h},'{i}','{j}','{k}','{l}','{m}','{n}',{u})
""".format(e=rental_id, f=name, g=street,h=city, i=zipcode, j=bedroom, k=bathroom, l=sqFt, m=price, n=typeID,u=imageLink)
cursor.execute(command)
conn.commit()
我得到的错误是:
cursor.execute(command)
sqlite3.OperationalError: no such column: x
127.0.0.1 - - [05/May/2017 08:28:52] "POST /rental_create HTTP/1.1" 500 -
x
是我测试表格时输入的
这是我的第一个项目,在此之前我玩得很开心。我将不胜感激任何帮助。谢谢
最好使用这样的语法:
cursor.execute('INSERT INTO Log' \
' (tmstmp, typ, conid, tel, tel_pb, num_int, num_ext, dur, sip, finished)' \
' VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
(msg.tmstmp, msg.typ, msg.conid, msg.tel, msg.tel_pb, msg.num_int, msg.num_ext, msg.dur, msg.sip, msg.finished))
有关更多示例,请参阅 https://docs.python.org/2/library/sqlite3.html。
我才编程几个月所以如果这很明显请原谅我。
我有一个使用 wtforms 构建的本地网站,我正在尝试做一些简单的事情,比如获取表单数据并将其添加到现有的本地数据库中。
我在测试表单时总是遇到错误。似乎 sqlite 正在尝试使用 form.field.data entry
作为列名。有人可以告诉我如何解决这个问题吗?
代码如下:
if request.method == 'POST' and form.validate():
name = form.Name.data
street = form.StreetAddress.data
city = form.City.data
zipcode = str(form.Zip.data)
bedroom = str(form.Bedroom.data)
bathroom = str(form.Bathroom.data)
sqFt = str(form.SqFt.data)
price = str(form.Price.data)
typeID = str(form.TypeID.data)
imageLink = str(form.ImageLink.data)
command = """INSERT INTO Rentals(ID,Name,StreetAddress,City,Zip,Bedroom,Bathroom,SqFt,PriceMonth,TypeID,ImageLink)
VALUES({e},{f},{g},{h},'{i}','{j}','{k}','{l}','{m}','{n}',{u})
""".format(e=rental_id, f=name, g=street,h=city, i=zipcode, j=bedroom, k=bathroom, l=sqFt, m=price, n=typeID,u=imageLink)
cursor.execute(command)
conn.commit()
我得到的错误是:
cursor.execute(command)
sqlite3.OperationalError: no such column: x
127.0.0.1 - - [05/May/2017 08:28:52] "POST /rental_create HTTP/1.1" 500 -
x
是我测试表格时输入的
这是我的第一个项目,在此之前我玩得很开心。我将不胜感激任何帮助。谢谢
最好使用这样的语法:
cursor.execute('INSERT INTO Log' \
' (tmstmp, typ, conid, tel, tel_pb, num_int, num_ext, dur, sip, finished)' \
' VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
(msg.tmstmp, msg.typ, msg.conid, msg.tel, msg.tel_pb, msg.num_int, msg.num_ext, msg.dur, msg.sip, msg.finished))
有关更多示例,请参阅 https://docs.python.org/2/library/sqlite3.html。