sqlite3.OperationalError:没有这样的列:

杰里·阿特里克(Geri Atric)

这是一个非常基本的问题,我知道此代码存在安全性问题,除其他问题外,还应使用参数化条目-这是一项正在进行的工作。我正在尝试为项目设置构建用户注册模块。我已经建立了一个表,其中第一列用作具有主键约束的ID,但是在运行代码时,出现以下错误,并且不确定为什么-(如果它与p_ID列有关):

Traceback (most recent call last):
  File "user.py", line 72, in <module>
    userSignUp()
  File "user.py", line 68, in userSignUp
    c.execute("INSERT INTO People VALUES(userName, password, confirmPassword,   firstName,lastName, companyName, email, phoneNumber,addressLine1, addressLine2, addressLine3, zipCode, province, country, regDate)")
sqlite3.OperationalError: no such column: userName

代码是:

import sqlite3
import datetime


path = "/Users/workhorse/thinkful/"
db = "apartment.db"

def checkAndCreateDB():
    #not checking for some reason
    #fullPath = os.path.join(path, db)
    #if os.path.exists(fullPath):
    #   print "Database Exists"
    #else:
    connection = sqlite3.connect(db)
    print "Creating database"
    createUserRegTable()

def createUserRegTable():
    with sqlite3.connect(db) as connection:
        c = connection.cursor()
        c.execute("""CREATE TABLE People
        (p_ID INTEGER PRIMARY KEY AUTOINCREMENT,
        userName TEXT NOT NULL UNIQUE,
        password TEXT NOT NULL,
        confirmPassword TEXT NOT NULL,
        firstName TEXT NOT NULL,
        lastName TEXT NOT NULL,
        companyName TEXT NOT NULL,
        email TEXT NOT NULL UNIQUE,
        phoneNumber TEXT NOT NULL,
        addressLine1 TEXT NOT NULL,
        addressLine2 TEXT,
        addressLine3 TEXT,
        zipCode TEXT NOT NULL,
        province TEXT NOT NULL,
        country TEXT NOT NULL,
        regDate DATE NOT NULL)
        """)
        print "table made"


def userSignIn():
    pass

def userSignUp():
    userName = raw_input("Enter a user name: ")
    password = raw_input("Enter a password: ")
    confirmPassword = raw_input("Confirm Your Password: ")
    firstName = raw_input("Enter your first name: ")
    lastName = raw_input("Enter your last name: ")
    companyName = raw_input("Enter your company name: ")
    email = raw_input("Enter your email: ")
    phoneNumber = raw_input("Enter your phone number: ")
    addressLine1 = raw_input("Enter your address: ")
    addressLine2 = raw_input("Enter second line of your address (Not Required): ")
    addressLine3 = raw_input("Enter third line of your address (Not Required): ")
    zipCode = raw_input("Enter your zip code: ")
    province = raw_input("Enter your state or province: ")
    country = raw_input("Enter your country: ")
    regDate = datetime.date.today()
    print regDate

    #userInfo = (userName, password, confirmPassword, firstName,lastName, companyName, email, phoneNumber,addressLine1,
    #addressLine2, addressLine3, zipCode, province, country, regDate)

    with sqlite3.connect(db) as connection:
        c = connection.cursor()
        c.execute("INSERT INTO People VALUES(userName, password, confirmPassword, firstName,lastName, companyName, email, phoneNumber,addressLine1, addressLine2, addressLine3, zipCode, province, country, regDate)")

checkAndCreateDB()

userSignUp()

非常感谢

马丁·彼得斯(Martijn Pieters)

如果要将Python值插入SQL数据库中,仅在SQL语句中命名Python变量是不够的相反,SQL数据库认为您想插入从表或其他查询中获取的值。

请改用SQL参数,并传递实际值:

params = (userName, password, confirmPassword, firstName, lastName,
          companyName, email, phoneNumber, addressLine1, addressLine2, 
          addressLine3, zipCode, province, country, regDate)

c.execute("INSERT INTO People VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", params)

NULL值用于p_ID主键列;替代方法是命名要为其插入值的所有列,或将其None作为附加参数的值传递

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

sqlite3.OperationalError:没有这样的列:key

来自分类Dev

sqlite3.OperationalError:没有这样的列:USA

来自分类Dev

sqlite3中没有这样的列错误

来自分类Dev

Python sqlite3.OperationalError:没有这样的表:

来自分类Dev

(sqlite3.OperationalError)没有这样的表

来自分类Dev

sqlite3.OperationalError:没有这样的列:PY_VAR0

来自分类Dev

sqlite3.OperationalError:没有这样的列:不和谐

来自分类Dev

sqlite3.OperationalError:没有这样的列:PY_VAR0

来自分类Dev

flask / sqlalchemy-OperationalError:(sqlite3.OperationalError)没有这样的表

来自分类Dev

SQLite3 :: SQLException:没有这样的列:parameters.user:

来自分类Dev

ActionView :: Template :: Error:SQLite3 :: SQLException没有这样的列“ question_list_id” =?

来自分类Dev

SQLite3 :: SQLException:没有这样的列:parameters.user:

来自分类Dev

Rails关联:SQLite3 :: SQLException:没有这样的列

来自分类Dev

Django:sqlite3.OperationalError:python shell 中没有这样的表

来自分类Dev

sqlite3.OperationalError:没有这样的表:main.source

来自分类Dev

列在那里,但我收到:SQLite3::SQLException:没有这样的列:requestor.birthyear

来自分类Dev

OperationalError:(OperationalError)没有这样的列

来自分类Dev

SQLite3 :: SQLException:没有这样的表:消息:SELECT“ messages”。* FROM“ messages”

来自分类Dev

迁移错误:SQLite3 :: SQLException:没有这样的表:main.users

来自分类Dev

Capistrano SQLite3 :: SQLException:没有这样的表:users

来自分类Dev

SQLite在Android上没有这样的列错误

来自分类Dev

SQLite更新行错误没有这样的列

来自分类Dev

SQLite在Android上插入没有这样的列错误

来自分类Dev

Sqlite Code(1)错误,没有这样的列

来自分类Dev

SQLite Android没有这样的列错误

来自分类Dev

Android SQLite异常:没有这样的列

来自分类Dev

进行SQLite查询时“没有这样的列”

来自分类Dev

SQLite从嵌套内部联接的右侧没有这样的列

来自分类Dev

Android sqlite 更新错误没有这样的列

Related 相关文章

  1. 1

    sqlite3.OperationalError:没有这样的列:key

  2. 2

    sqlite3.OperationalError:没有这样的列:USA

  3. 3

    sqlite3中没有这样的列错误

  4. 4

    Python sqlite3.OperationalError:没有这样的表:

  5. 5

    (sqlite3.OperationalError)没有这样的表

  6. 6

    sqlite3.OperationalError:没有这样的列:PY_VAR0

  7. 7

    sqlite3.OperationalError:没有这样的列:不和谐

  8. 8

    sqlite3.OperationalError:没有这样的列:PY_VAR0

  9. 9

    flask / sqlalchemy-OperationalError:(sqlite3.OperationalError)没有这样的表

  10. 10

    SQLite3 :: SQLException:没有这样的列:parameters.user:

  11. 11

    ActionView :: Template :: Error:SQLite3 :: SQLException没有这样的列“ question_list_id” =?

  12. 12

    SQLite3 :: SQLException:没有这样的列:parameters.user:

  13. 13

    Rails关联:SQLite3 :: SQLException:没有这样的列

  14. 14

    Django:sqlite3.OperationalError:python shell 中没有这样的表

  15. 15

    sqlite3.OperationalError:没有这样的表:main.source

  16. 16

    列在那里,但我收到:SQLite3::SQLException:没有这样的列:requestor.birthyear

  17. 17

    OperationalError:(OperationalError)没有这样的列

  18. 18

    SQLite3 :: SQLException:没有这样的表:消息:SELECT“ messages”。* FROM“ messages”

  19. 19

    迁移错误:SQLite3 :: SQLException:没有这样的表:main.users

  20. 20

    Capistrano SQLite3 :: SQLException:没有这样的表:users

  21. 21

    SQLite在Android上没有这样的列错误

  22. 22

    SQLite更新行错误没有这样的列

  23. 23

    SQLite在Android上插入没有这样的列错误

  24. 24

    Sqlite Code(1)错误,没有这样的列

  25. 25

    SQLite Android没有这样的列错误

  26. 26

    Android SQLite异常:没有这样的列

  27. 27

    进行SQLite查询时“没有这样的列”

  28. 28

    SQLite从嵌套内部联接的右侧没有这样的列

  29. 29

    Android sqlite 更新错误没有这样的列

热门标签

归档