SQLite 错误没有这样的列 Python

SQLite ERROR no such column Python

我有一个问题,我正在尝试通过比较 python 和 SQLite 中的 rowid 在用户名和用户名电子邮件之间进行验证,代码如下:

username = self.txtUsername.GetValue()
email =  self.txtEmail.GetValue()
UsernameE  = self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Username="
  + username)
EmailU = self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Email=" + email)

错误是:

> UsernameE  = self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Username="
      + username)
sqlite3.OperationalError: no such column: "what i inserted in the username"

您的 SQL 格式错误,因为您没有在用户名值后关闭引号。但是你不应该那样做:你应该使用参数:

self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Username=? ", (username,))

另请注意,execute 没有 return 值:您需要获取它,例如使用 fetchone().

尝试为用户名添加引号:

UsernameE  = self.conn.execute("SELECT rowid,* FROM tblPlayers WHERE p_Username = '" + username + "'")